|
@@ -1,176 +0,0 @@
|
|
|
-# Made by Kerberos v1.0 on 2009/05/03
|
|
|
-# this script is part of the Official L2J Datapack Project.
|
|
|
-# Visit http://www.l2jdp.com/forum for more details.
|
|
|
-
|
|
|
-import sys
|
|
|
-
|
|
|
-from com.l2jserver.gameserver.datatables import SkillTable
|
|
|
-from com.l2jserver.gameserver.model import Elementals
|
|
|
-from com.l2jserver.gameserver.model.itemcontainer import Inventory
|
|
|
-from com.l2jserver.gameserver.model.quest import State
|
|
|
-from com.l2jserver.gameserver.model.quest import QuestState
|
|
|
-from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
|
|
|
-
|
|
|
-qn = "10275_ContainingTheAttributePower"
|
|
|
-
|
|
|
-#NPCs
|
|
|
-Holly = 30839
|
|
|
-Weber = 31307
|
|
|
-Yin = 32325
|
|
|
-Yang = 32326
|
|
|
-Water = 27380
|
|
|
-Air = 27381
|
|
|
-
|
|
|
-#items
|
|
|
-YinSword = 13845
|
|
|
-YangSword = 13881
|
|
|
-SoulPieceWater = 13861
|
|
|
-SoulPieceAir = 13862
|
|
|
-
|
|
|
-class Quest (JQuest) :
|
|
|
- def __init__(self,id,name,descr):
|
|
|
- JQuest.__init__(self,id,name,descr)
|
|
|
- self.questItemIds = [YinSword, YangSword, SoulPieceWater, SoulPieceAir]
|
|
|
-
|
|
|
- def onAdvEvent (self,event,npc, player) :
|
|
|
- htmltext = event
|
|
|
- st = player.getQuestState(qn)
|
|
|
- if not st : return
|
|
|
- if event in ["30839-02.htm","31307-02.htm"] :
|
|
|
- st.set("cond","1")
|
|
|
- st.setState(State.STARTED)
|
|
|
- st.playSound("ItemSound.quest_accept")
|
|
|
- elif event == "30839-05.htm" :
|
|
|
- st.set("cond","2")
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event == "31307-05.htm" :
|
|
|
- st.set("cond","7")
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event == "32325-03.htm" :
|
|
|
- st.set("cond","3")
|
|
|
- st.giveItems(YinSword,1,Elementals.FIRE,10)
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event == "32326-03.htm" :
|
|
|
- st.set("cond","8")
|
|
|
- st.giveItems(YangSword,1,Elementals.EARTH,10)
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event == "32325-06.htm" :
|
|
|
- if st.getQuestItemsCount(YinSword):
|
|
|
- st.takeItems(YinSword,1)
|
|
|
- htmltext = "32325-07.htm"
|
|
|
- st.giveItems(YinSword,1,Elementals.FIRE,10)
|
|
|
- elif event == "32326-06.htm" :
|
|
|
- if st.getQuestItemsCount(YangSword):
|
|
|
- st.takeItems(YangSword,1)
|
|
|
- htmltext = "32326-07.htm"
|
|
|
- st.giveItems(YangSword,1,Elementals.EARTH,10)
|
|
|
- elif event == "32325-09.htm" :
|
|
|
- st.set("cond","5")
|
|
|
- SkillTable.getInstance().getInfo(2635,1).getEffects(player,player)
|
|
|
- st.giveItems(YinSword,1,Elementals.FIRE,10)
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event == "32326-09.htm" :
|
|
|
- st.set("cond","10")
|
|
|
- SkillTable.getInstance().getInfo(2636,1).getEffects(player,player)
|
|
|
- st.giveItems(YangSword,1,Elementals.EARTH,10)
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- elif event.isdigit() :
|
|
|
- st.giveItems(10520+int(event),2)
|
|
|
- st.addExpAndSp(202160,20375)
|
|
|
- st.unset("cond")
|
|
|
- st.exitQuest(False)
|
|
|
- st.playSound("ItemSound.quest_finish")
|
|
|
- htmltext = str(npc.getNpcId())+"-1"+event+".htm"
|
|
|
- return htmltext
|
|
|
-
|
|
|
- def onTalk (self,npc,player):
|
|
|
- htmltext = Quest.getNoQuestMsg(player)
|
|
|
- st = player.getQuestState(qn)
|
|
|
- if not st : return htmltext
|
|
|
- npcId = npc.getNpcId()
|
|
|
- id = st.getState()
|
|
|
- cond = st.getInt("cond")
|
|
|
- if id == State.COMPLETED :
|
|
|
- if npcId == Holly :
|
|
|
- htmltext = "30839-0a.htm"
|
|
|
- elif npcId == Weber:
|
|
|
- htmltext = "31307-0a.htm"
|
|
|
- elif id == State.CREATED :
|
|
|
- if player.getLevel() >= 76 :
|
|
|
- if npcId == Holly :
|
|
|
- htmltext = "30839-01.htm"
|
|
|
- else:
|
|
|
- htmltext = "31307-01.htm"
|
|
|
- else:
|
|
|
- if npcId == Holly :
|
|
|
- htmltext = "30839-00.htm"
|
|
|
- else:
|
|
|
- htmltext = "31307-00.htm"
|
|
|
- else :
|
|
|
- if npcId == Holly :
|
|
|
- if cond == 1:
|
|
|
- htmltext = "30839-03.htm"
|
|
|
- elif cond == 2:
|
|
|
- htmltext = "30839-05.htm"
|
|
|
- elif npcId == Weber:
|
|
|
- if cond == 1:
|
|
|
- htmltext = "31307-03.htm"
|
|
|
- elif cond == 7:
|
|
|
- htmltext = "31307-05.htm"
|
|
|
- elif npcId == Yin:
|
|
|
- if cond == 2:
|
|
|
- htmltext = "32325-01.htm"
|
|
|
- elif cond in [3,5]:
|
|
|
- htmltext = "32325-04.htm"
|
|
|
- elif cond == 4:
|
|
|
- htmltext = "32325-08.htm"
|
|
|
- st.takeItems(YinSword,1)
|
|
|
- st.takeItems(SoulPieceWater,-1)
|
|
|
- elif cond == 6:
|
|
|
- htmltext = "32325-10.htm"
|
|
|
- elif npcId == Yang:
|
|
|
- if cond == 7:
|
|
|
- htmltext = "32326-01.htm"
|
|
|
- elif cond in [8,10]:
|
|
|
- htmltext = "32326-04.htm"
|
|
|
- elif cond == 9:
|
|
|
- htmltext = "32326-08.htm"
|
|
|
- st.takeItems(YangSword,1)
|
|
|
- st.takeItems(SoulPieceAir,-1)
|
|
|
- elif cond == 11:
|
|
|
- htmltext = "32326-10.htm"
|
|
|
- return htmltext
|
|
|
-
|
|
|
- def onKill(self,npc,player,isPet):
|
|
|
- st = player.getQuestState(qn)
|
|
|
- if not st or isPet: return
|
|
|
- if st.getState() != State.STARTED : return
|
|
|
- npcId = npc.getNpcId()
|
|
|
- if npcId == Air :
|
|
|
- if st.getItemEquipped(Inventory.PAPERDOLL_RHAND) == YangSword and st.getInt("cond") in [8,10] and st.getQuestItemsCount(SoulPieceAir) < 6 and st.getRandom(100) < 30:
|
|
|
- st.giveItems(SoulPieceAir,1)
|
|
|
- if st.getQuestItemsCount(SoulPieceAir) >= 6 :
|
|
|
- st.set("cond",str(st.getInt("cond")+1))
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- else:
|
|
|
- st.playSound("ItemSound.quest_itemget")
|
|
|
- elif npcId == Water :
|
|
|
- if st.getItemEquipped(Inventory.PAPERDOLL_RHAND) == YinSword and st.getInt("cond") in [3,5] and st.getQuestItemsCount(SoulPieceWater) < 6 and st.getRandom(100) < 30:
|
|
|
- st.giveItems(SoulPieceWater,1)
|
|
|
- if st.getQuestItemsCount(SoulPieceWater) >= 6 :
|
|
|
- st.set("cond",str(st.getInt("cond")+1))
|
|
|
- st.playSound("ItemSound.quest_middle")
|
|
|
- else:
|
|
|
- st.playSound("ItemSound.quest_itemget")
|
|
|
- return
|
|
|
-
|
|
|
-QUEST = Quest(10275,qn,"Containing the Attribute Power")
|
|
|
-
|
|
|
-QUEST.addStartNpc(Holly)
|
|
|
-QUEST.addStartNpc(Weber)
|
|
|
-QUEST.addTalkId(Holly)
|
|
|
-QUEST.addTalkId(Weber)
|
|
|
-QUEST.addTalkId(Yin)
|
|
|
-QUEST.addTalkId(Yang)
|
|
|
-QUEST.addKillId(Air)
|
|
|
-QUEST.addKillId(Water)
|