|
@@ -1,388 +0,0 @@
|
|
|
-#completely rewritten by Rolarga, original from mr
|
|
|
-# Shadow Weapon Coupons contributed by BiTi for the Official L2J Datapack Project
|
|
|
-# Visit http://www.l2jdp.com/forum/ for more details
|
|
|
-
|
|
|
-import sys
|
|
|
-from com.l2jserver.gameserver.model.quest import State
|
|
|
-from com.l2jserver.gameserver.model.quest import QuestState
|
|
|
-from com.l2jserver.gameserver.model.quest import Quest as JQuest
|
|
|
-
|
|
|
-qn = "232_TestOfLord"
|
|
|
-
|
|
|
-MARK_OF_LORD = 3390
|
|
|
-ORDEAL_NECKLACE = 3391
|
|
|
-VARKEES_CHARM = 3392
|
|
|
-TANTUS_CHARM = 3393
|
|
|
-HATOS_CHARM = 3394
|
|
|
-TAKUNA_CHARM = 3395
|
|
|
-CHIANTA_CHARM = 3396
|
|
|
-MANAKIAS_ORDERS = 3397
|
|
|
-BREKA_ORC_FANG = 3398
|
|
|
-MANAKIAS_AMULET = 3399
|
|
|
-HUGE_ORC_FANG = 3400
|
|
|
-SUMARIS_LETTER = 3401
|
|
|
-URUTU_BLADE = 3402
|
|
|
-TIMAK_ORC_SKULL = 3403
|
|
|
-SWORD_INTO_SKULL = 3404
|
|
|
-NERUGA_AXE_BLADE = 3405
|
|
|
-AXE_OF_CEREMONY = 3406
|
|
|
-MARSH_SPIDER_FEELER = 3407
|
|
|
-MARSH_SPIDER_FEET = 3408
|
|
|
-HANDIWORK_SPIDER_BROOCH = 3409
|
|
|
-CORNEA_OF_EN_MONSTEREYE = 3410
|
|
|
-MONSTEREYE_WOODCARVING = 3411
|
|
|
-BEAR_FANG_NECKLACE = 3412
|
|
|
-MARTANKUS_CHARM = 3413
|
|
|
-RAGNA_ORC_HEAD = 3414
|
|
|
-RAGNA_CHIEF_NOTICE = 3415
|
|
|
-IMMORTAL_FLAME = 3416
|
|
|
-BONE_ARROW = 1341
|
|
|
-ADENA = 57
|
|
|
-SHADOW_WEAPON_COUPON_CGRADE = 8870
|
|
|
-
|
|
|
-NPC=[30510,30515,30558,30564,30565,30566,30567,30568,30641,30642,30643,30649]
|
|
|
-
|
|
|
-MOBS=[20233,20269,20270,20564,20583,20584,20585,20586,20587,20588,20778,20779]
|
|
|
-
|
|
|
-STATS=[["atubaStat","nerugaStat","urutuStat","urutuDrop","dudaStat","gandiStat","markantusStat"],["cond","phase"]]
|
|
|
-
|
|
|
-#This handle all Dropdata for the Mobs in this Quest npcId:[var,value,newValue,chance,maxcount,item]
|
|
|
-DROPLIST={
|
|
|
-20269:["atubaStat", 2,3, 40,20,BREKA_ORC_FANG ],
|
|
|
-20270:["atubaStat", 2,3, 50,20,BREKA_ORC_FANG ],
|
|
|
-20583:["urutuDrop", 0,1, 50,10,TIMAK_ORC_SKULL],
|
|
|
-20584:["urutuDrop", 0,1, 55,10,TIMAK_ORC_SKULL],
|
|
|
-20585:["urutuDrop", 0,1, 60,10,TIMAK_ORC_SKULL],
|
|
|
-20586:["urutuDrop", 0,1, 65,10,TIMAK_ORC_SKULL],
|
|
|
-20587:["urutuDrop", 0,1, 70,10,TIMAK_ORC_SKULL],
|
|
|
-20588:["urutuDrop", 0,1, 75,10,TIMAK_ORC_SKULL],
|
|
|
-20233:["dudaStat", 1,2,100,10,MARSH_SPIDER_FEELER],
|
|
|
-20564:["gandiStat", 1,2, 90,20,CORNEA_OF_EN_MONSTEREYE],
|
|
|
-20778:["markantusStat",1,1,100, 1,RAGNA_ORC_HEAD],
|
|
|
-20779:["markantusStat",1,1,100, 1,RAGNA_CHIEF_NOTICE]
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-class Quest (JQuest) :
|
|
|
-
|
|
|
- def __init__(self,id,name,descr):
|
|
|
- JQuest.__init__(self,id,name,descr)
|
|
|
- self.questItemIds = range(3391,3417)
|
|
|
-
|
|
|
- def onAdvEvent (self,event,npc, player) :
|
|
|
- htmltext = event
|
|
|
- st = player.getQuestState(qn)
|
|
|
- if not st : return
|
|
|
- if st.getInt("phase")==0:
|
|
|
- if event=="1":
|
|
|
- st.setState(State.STARTED)
|
|
|
- st.giveItems(ORDEAL_NECKLACE,1)
|
|
|
- st.playSound("ItemSound.quest_accept")
|
|
|
- htmltext="30565-05.htm"
|
|
|
- for var in STATS[0]:
|
|
|
- st.set(var,"0")
|
|
|
- st.set("cond","1")
|
|
|
- st.set("phase","1")
|
|
|
- elif st.getInt("phase")==1:
|
|
|
- if event == "30565_1" :
|
|
|
- htmltext = "30565-08.htm"
|
|
|
- st.takeItems(SWORD_INTO_SKULL,1)
|
|
|
- st.takeItems(AXE_OF_CEREMONY,1)
|
|
|
- st.takeItems(MONSTEREYE_WOODCARVING,1)
|
|
|
- st.takeItems(HANDIWORK_SPIDER_BROOCH,1)
|
|
|
- st.takeItems(ORDEAL_NECKLACE,1)
|
|
|
- st.giveItems(BEAR_FANG_NECKLACE,1)
|
|
|
- st.takeItems(HUGE_ORC_FANG,1)
|
|
|
- st.set("phase","2")
|
|
|
- elif event == "30566_1" :
|
|
|
- st.set("atubaStat","1")
|
|
|
- st.giveItems(VARKEES_CHARM,1)
|
|
|
- htmltext = "30566-02.htm"
|
|
|
- elif event == "30567_1" :
|
|
|
- st.set("nerugaStat","1")
|
|
|
- htmltext = "30567-02.htm"
|
|
|
- st.giveItems(TANTUS_CHARM,1)
|
|
|
- elif event == "30558_1" :
|
|
|
- st.set("nerugaStat","2")
|
|
|
- htmltext = "30558-02.htm"
|
|
|
- st.giveItems(NERUGA_AXE_BLADE,1)
|
|
|
- st.takeItems(ADENA,1000)
|
|
|
- elif event == "30568_1" :
|
|
|
- st.set("urutuStat","1")
|
|
|
- st.set("urutuDrop","0")
|
|
|
- htmltext = "30568-02.htm"
|
|
|
- st.giveItems(HATOS_CHARM,1)
|
|
|
- elif event == "30641_1" :
|
|
|
- st.set("dudaStat","1")
|
|
|
- htmltext = "30641-02.htm"
|
|
|
- st.giveItems(TAKUNA_CHARM,1)
|
|
|
- elif event == "30642_1" :
|
|
|
- st.set("gandiStat","1")
|
|
|
- htmltext = "30642-02.htm"
|
|
|
- st.giveItems(CHIANTA_CHARM,1)
|
|
|
- elif st.getInt("phase")==2:
|
|
|
- if event == "30565_2":
|
|
|
- htmltext = "30565-12.htm"
|
|
|
- st.takeItems(IMMORTAL_FLAME,1)
|
|
|
- st.addExpAndSp(894888,61408)
|
|
|
- st.giveItems(57,161806)
|
|
|
- st.giveItems(MARK_OF_LORD,1)
|
|
|
- st.giveItems(SHADOW_WEAPON_COUPON_CGRADE,15)
|
|
|
- st.playSound("ItemSound.quest_finish")
|
|
|
- for var in STATS[0]:
|
|
|
- st.unset(var)
|
|
|
- for var in STATS[1]:
|
|
|
- st.unset(var)
|
|
|
- st.exitQuest(False)
|
|
|
- elif event == "30649_1" :
|
|
|
- htmltext = "30649-02.htm"
|
|
|
- elif event == "30649_2" :
|
|
|
- htmltext = "30649-03.htm"
|
|
|
- elif event == "30649_3" :
|
|
|
- st.set("markantusStat","1")
|
|
|
- htmltext = "30649-04.htm"
|
|
|
- st.giveItems(MARTANKUS_CHARM,1)
|
|
|
- st.takeItems(BEAR_FANG_NECKLACE,1)
|
|
|
- elif event == "30649_4" :
|
|
|
- htmltext = "30649-07.htm"
|
|
|
- st.addSpawn(30643,21036,-107690,-3038)
|
|
|
- st.set("markantusStat","4")
|
|
|
- elif event == "30643_1" :
|
|
|
- htmltext = "30643-02.htm"
|
|
|
- elif event == "30643_2" :
|
|
|
- htmltext = "30643-03.htm"
|
|
|
- return htmltext
|
|
|
-
|
|
|
- def onTalk (self,npc,player):
|
|
|
- htmltext = Quest.getNoQuestMsg(player)
|
|
|
- st = self.getQuestState(player, True)
|
|
|
- if not st : return htmltext
|
|
|
-
|
|
|
- npcId = npc.getId()
|
|
|
- id = st.getState()
|
|
|
- if npcId != NPC[4] and id != State.STARTED : return htmltext
|
|
|
-
|
|
|
- if id == State.CREATED:
|
|
|
- for var in STATS[1]:
|
|
|
- st.set(var,"0")
|
|
|
- if npcId == NPC[4]:
|
|
|
- if st.getInt("cond")==0:
|
|
|
- if player.getRace().ordinal() != 3 :
|
|
|
- htmltext = "30565-01.htm"
|
|
|
- st.exitQuest(1)
|
|
|
- else:
|
|
|
- if player.getClassId().getId() != 0x32 :
|
|
|
- htmltext = "30565-02.htm"
|
|
|
- st.exitQuest(1)
|
|
|
- else:
|
|
|
- if player.getLevel() < 39 :
|
|
|
- htmltext = "30565-03.htm"
|
|
|
- st.exitQuest(1)
|
|
|
- else:
|
|
|
- htmltext = "30565-04.htm"
|
|
|
- elif id == State.COMPLETED:
|
|
|
- htmltext = Quest.getAlreadyCompletedMsg(player)
|
|
|
-
|
|
|
- else:
|
|
|
- if st.getInt("phase") == 1:
|
|
|
- atuba=st.getInt("atubaStat")
|
|
|
- neruga=st.getInt("nerugaStat")
|
|
|
- urutu=st.getInt("urutuStat")
|
|
|
- duda=st.getInt("dudaStat")
|
|
|
- gandi=st.getInt("gandiStat")
|
|
|
-# Atuba Part
|
|
|
- if npcId == NPC[5]:
|
|
|
- if atuba==0:
|
|
|
- htmltext = "30566-01.htm"
|
|
|
- elif atuba>0 and atuba<4:
|
|
|
- htmltext = "30566-03.htm"
|
|
|
- elif atuba==4:
|
|
|
- st.set("atubaStat","5")
|
|
|
- htmltext = "30566-04.htm"
|
|
|
- st.takeItems(VARKEES_CHARM,1)
|
|
|
- st.giveItems(HUGE_ORC_FANG,1)
|
|
|
- st.takeItems(MANAKIAS_AMULET,1)
|
|
|
- elif atuba>4:
|
|
|
- htmltext = "30566-05.htm"
|
|
|
- elif npcId == NPC[1]:
|
|
|
- if atuba==1:
|
|
|
- htmltext = "30515-01.htm"
|
|
|
- st.giveItems(MANAKIAS_ORDERS,1)
|
|
|
- st.set("atubaStat","2")
|
|
|
- elif atuba==2:
|
|
|
- htmltext = "30515-02.htm"
|
|
|
- elif atuba==3:
|
|
|
- st.set("atubaStat","4")
|
|
|
- htmltext = "30515-03.htm"
|
|
|
- st.giveItems(MANAKIAS_AMULET,1)
|
|
|
- st.takeItems(MANAKIAS_ORDERS,1)
|
|
|
- st.takeItems(DROPLIST[20269][5],DROPLIST[20269][4])
|
|
|
- elif atuba==4:
|
|
|
- htmltext = "30515-04.htm"
|
|
|
- elif atuba==5:
|
|
|
- htmltext = "30515-05.htm"
|
|
|
-# Neruga Part
|
|
|
- elif npcId == NPC[6]:
|
|
|
- if neruga==0:
|
|
|
- htmltext = "30567-01.htm"
|
|
|
- elif neruga==1:
|
|
|
- htmltext = "30567-03.htm"
|
|
|
- elif neruga==2:
|
|
|
- if st.getQuestItemsCount(BONE_ARROW)>999:
|
|
|
- st.set("nerugaStat","3")
|
|
|
- st.takeItems(BONE_ARROW,1000)
|
|
|
- st.takeItems(NERUGA_AXE_BLADE,1)
|
|
|
- st.takeItems(TANTUS_CHARM,1)
|
|
|
- st.giveItems(AXE_OF_CEREMONY,1)
|
|
|
- htmltext = "30567-04.htm"
|
|
|
- else:
|
|
|
- htmltext = "30567-03.htm"
|
|
|
- elif neruga==3:
|
|
|
- htmltext = "30567-05.htm"
|
|
|
- elif npcId == NPC[2]:
|
|
|
- if neruga==1:
|
|
|
- if st.getQuestItemsCount(ADENA)>999:
|
|
|
- htmltext = "30558-01.htm"
|
|
|
- else:
|
|
|
- htmltext = "30558-03.htm"
|
|
|
- elif neruga==2:
|
|
|
- htmltext = "30558-04.htm"
|
|
|
-# Urutu Part
|
|
|
- elif npcId == NPC[7]:
|
|
|
- if urutu==0:
|
|
|
- htmltext = "30568-01.htm"
|
|
|
- elif urutu==3 and st.getInt("urutuDrop")==1:
|
|
|
- st.set("urutuStat","4")
|
|
|
- htmltext = "30568-04.htm"
|
|
|
- st.takeItems(HATOS_CHARM,1)
|
|
|
- st.takeItems(URUTU_BLADE,1)
|
|
|
- st.takeItems(DROPLIST[20587][5],DROPLIST[20587][4])
|
|
|
- st.giveItems(SWORD_INTO_SKULL,1)
|
|
|
- elif urutu>0 and urutu<4:
|
|
|
- htmltext = "30568-03.htm"
|
|
|
- elif urutu==4:
|
|
|
- htmltext = "30568-05.htm"
|
|
|
- elif npcId == NPC[3]:
|
|
|
- if urutu == 1:
|
|
|
- st.set("urutuStat","2")
|
|
|
- htmltext = "30564-01.htm"
|
|
|
- st.giveItems(SUMARIS_LETTER,1)
|
|
|
- elif npcId == NPC[0]:
|
|
|
- if urutu==2:
|
|
|
- st.set("urutuStat","3")
|
|
|
- st.giveItems(URUTU_BLADE,1)
|
|
|
- st.takeItems(SUMARIS_LETTER,1)
|
|
|
- htmltext = "30510-01.htm"
|
|
|
- elif urutu==3:
|
|
|
- htmltext = "30510-02.htm"
|
|
|
- elif urutu==4:
|
|
|
- htmltext = "30510-03.htm"
|
|
|
-# Duda Part
|
|
|
- elif npcId == NPC[8]:
|
|
|
- if duda==0:
|
|
|
- htmltext = "30641-01.htm"
|
|
|
- elif duda in [1,2]:
|
|
|
- htmltext = "30641-03.htm"
|
|
|
- elif duda==3:
|
|
|
- st.set("dudaStat","4")
|
|
|
- htmltext = "30641-04.htm"
|
|
|
- st.takeItems(DROPLIST[20233][5],DROPLIST[20233][4])
|
|
|
- st.takeItems(MARSH_SPIDER_FEET,st.getQuestItemsCount(MARSH_SPIDER_FEET))
|
|
|
- st.giveItems(HANDIWORK_SPIDER_BROOCH,1)
|
|
|
- st.takeItems(TAKUNA_CHARM,1)
|
|
|
- elif duda==4:
|
|
|
- htmltext = "30641-05.htm"
|
|
|
-# Gandi Part
|
|
|
- elif npcId == NPC[9]:
|
|
|
- if gandi==0:
|
|
|
- htmltext = "30642-01.htm"
|
|
|
- elif gandi==1:
|
|
|
- htmltext = "30642-03.htm"
|
|
|
- elif gandi==2:
|
|
|
- st.set("gandiStat","3")
|
|
|
- htmltext = "30642-04.htm"
|
|
|
- st.takeItems(DROPLIST[20564][5],DROPLIST[20564][4])
|
|
|
- st.giveItems(MONSTEREYE_WOODCARVING,1)
|
|
|
- st.takeItems(CHIANTA_CHARM,1)
|
|
|
- elif gandi==3:
|
|
|
- htmltext = "30642-05.htm"
|
|
|
-# end of phase 1
|
|
|
- elif npcId == NPC[4]:
|
|
|
- if gandi==3 and duda==4 and urutu==4 and neruga==3 and atuba==5:
|
|
|
- htmltext = "30565-07.htm"
|
|
|
- else:
|
|
|
- htmltext = "30565-06.htm"
|
|
|
- elif st.getInt("phase")==2:
|
|
|
- markantus=st.getInt("markantusStat")
|
|
|
- if npcId == NPC[11]:
|
|
|
- if markantus==0:
|
|
|
- htmltext = "30649-01.htm"
|
|
|
- elif markantus==1:
|
|
|
- htmltext = "30649-05.htm"
|
|
|
- elif markantus==2:
|
|
|
- st.set("markantusStat","3")
|
|
|
- htmltext = "30649-06.htm"
|
|
|
- st.takeItems(MARTANKUS_CHARM,1)
|
|
|
- st.takeItems(RAGNA_ORC_HEAD,1)
|
|
|
- st.giveItems(IMMORTAL_FLAME,1)
|
|
|
- st.takeItems(RAGNA_CHIEF_NOTICE,1)
|
|
|
- elif markantus==3:
|
|
|
- htmltext = "30649-07.htm"
|
|
|
- st.addSpawn(30643,21036,-107690,-3038)
|
|
|
- st.set("markantusStat","4")
|
|
|
- elif markantus>3:
|
|
|
- htmltext = "30649-08.htm"
|
|
|
- elif npcId == NPC[10]:
|
|
|
- if markantus>2:
|
|
|
- htmltext = "30643-01.htm"
|
|
|
- elif npcId == NPC[4]:
|
|
|
- if markantus==0:
|
|
|
- htmltext = "30565-09.htm"
|
|
|
- elif markantus==1 or markantus==2:
|
|
|
- htmltext = "30565-10.htm"
|
|
|
- elif markantus>2:
|
|
|
- htmltext = "30565-11.htm"
|
|
|
- return htmltext
|
|
|
-
|
|
|
- def onKill(self,npc,player,isPet):
|
|
|
- st = player.getQuestState(qn)
|
|
|
- if not st : return
|
|
|
- if st.getState() != State.STARTED : return
|
|
|
-
|
|
|
- npcId = npc.getId()
|
|
|
- var,value,newValue,chance,maxcount,item=DROPLIST[npcId]
|
|
|
- random=self.getRandom(100)
|
|
|
- count=st.getQuestItemsCount(item)
|
|
|
- spiderCount=st.getQuestItemsCount(MARSH_SPIDER_FEET)
|
|
|
- if item == MARSH_SPIDER_FEELER and int(st.get(var)) == value:
|
|
|
- if spiderCount<10:
|
|
|
- st.giveItems(MARSH_SPIDER_FEET,1)
|
|
|
- st.playSound("ItemSound.quest_itemget")
|
|
|
- elif st.getQuestItemsCount(MARSH_SPIDER_FEELER)<9:
|
|
|
- st.giveItems(MARSH_SPIDER_FEELER,1)
|
|
|
- st.playSound("ItemSound.quest_itemget")
|
|
|
- elif st.getQuestItemsCount(MARSH_SPIDER_FEELER)==9:
|
|
|
- st.giveItems(MARSH_SPIDER_FEELER,1)
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- st.set("dudaStat","3")
|
|
|
- elif int(st.get(var)) == value and random < chance and count < maxcount:
|
|
|
- st.giveItems(item,1)
|
|
|
- if count == maxcount-1:
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- if newValue == 1 and st.getQuestItemsCount(RAGNA_ORC_HEAD) and st.getQuestItemsCount(RAGNA_CHIEF_NOTICE):
|
|
|
- st.set(var,"2")
|
|
|
- else:
|
|
|
- st.set(var,str(newValue))
|
|
|
- else:
|
|
|
- st.playSound("ItemSound.quest_itemget")
|
|
|
- return
|
|
|
-
|
|
|
-QUEST = Quest(232,qn,"Test Of Lord")
|
|
|
-
|
|
|
-QUEST.addStartNpc(NPC[4])
|
|
|
-
|
|
|
-for npcId in NPC:
|
|
|
- QUEST.addTalkId(npcId)
|
|
|
-
|
|
|
-for mobId in MOBS:
|
|
|
- QUEST.addKillId(mobId)
|