rendered paste bodyIndex: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/39_RedEyedInvaders/__init__.py===================================================================--- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/39_RedEyedInvaders/__init__.py (revision 2915)+++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/39_RedEyedInvaders/__init__.py (working copy)@@ -1,5 +1,6 @@ # Made by disKret import sys+from net.sf.l2j import Config 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@@ -26,6 +27,31 @@ BABy_DUCK_RODE = 6529 FISHING_SHOT_NG = 6535 +DROPLIST={20925:[GEM_OF_MAILLE,30,INCENSE_POUCH,"5"],+ 20919:[INCENSE_POUCH,30,GEM_OF_MAILLE,"5"],+ 20920:[INCENSE_POUCH,30,GEM_OF_MAILLE,"5"]+}+NECKLACE={20921:[RED_BONE_NECKLACE,100,BLACK_BONE_NECKLACE,"3"],+ 20919:[BLACK_BONE_NECKLACE,100,RED_BONE_NECKLACE,"3"],+ 20920:[BLACK_BONE_NECKLACE,100,RED_BONE_NECKLACE,"3"]+}+def drop(partyMember,array) :+ item,max,item2,condition = array+ st = partyMember.getQuestState(qn)+ count = st.getQuestItemsCount(item)+ numItems,chance = divmod(100*Config.RATE_QUESTS_REWARD,100)+ if st.getRandom(100) < chance :+ numItems = numItems + 1+ if count+numItems > max :+ numItems = max - count+ st.giveItems(item,int(numItems))+ if st.getQuestItemsCount(item) == max and st.getQuestItemsCount(item2) == max:+ st.playSound("ItemSound.quest_middle")+ st.set("cond",condition)+ else:+ st.playSound("ItemSound.quest_itemget")+ return+ class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)@@ -87,54 +113,13 @@ def onKill (self,npc,player): npcId = npc.getNpcId()- if npcId in [20919,20920] :- partyMember = self.getRandomPartyMember(player,"2")- if partyMember : - st = partyMember.getQuestState(qn)- if st.getQuestItemsCount(BLACK_BONE_NECKLACE) < 100 :- st.giveItems(BLACK_BONE_NECKLACE,1)- if st.getQuestItemsCount(BLACK_BONE_NECKLACE) == 100 and st.getQuestItemsCount(RED_BONE_NECKLACE) == 100:- st.playSound("ItemSound.quest_middle")- st.set("cond","3")- else:- st.playSound("ItemSound.quest_itemget")- return- if npcId == 20921 :- partyMember = self.getRandomPartyMember(player,"2")- if partyMember : - st = partyMember.getQuestState(qn)- if st.getQuestItemsCount(RED_BONE_NECKLACE) < 100 :- st.giveItems(RED_BONE_NECKLACE,1)- if st.getQuestItemsCount(BLACK_BONE_NECKLACE) == 100 and st.getQuestItemsCount(RED_BONE_NECKLACE) == 100:- st.playSound("ItemSound.quest_middle")- st.set("cond","3")- else:- st.playSound("ItemSound.quest_itemget")- return- if npcId in [20919,20920] :+ partyMember = self.getRandomPartyMember(player,"2")+ if partyMember :+ drop(partyMember,NECKLACE[npcId])+ else: partyMember = self.getRandomPartyMember(player,"4")- if partyMember : - st = partyMember.getQuestState(qn)- if st.getQuestItemsCount(INCENSE_POUCH) < 30 :- st.giveItems(INCENSE_POUCH,1)- if st.getQuestItemsCount(INCENSE_POUCH) == 30 and st.getQuestItemsCount(GEM_OF_MAILLE) == 30:- st.playSound("ItemSound.quest_middle")- st.set("cond","5")- else:- st.playSound("ItemSound.quest_itemget")- return- if npcId == 20925 :- partyMember = self.getRandomPartyMember(player,"4")- if partyMember : - st = partyMember.getQuestState(qn)- if st.getQuestItemsCount(GEM_OF_MAILLE) < 30 :- st.giveItems(GEM_OF_MAILLE,1)- if st.getQuestItemsCount(INCENSE_POUCH) == 30 and st.getQuestItemsCount(GEM_OF_MAILLE) == 30:- st.playSound("ItemSound.quest_middle")- st.set("cond","5")- else:- st.playSound("ItemSound.quest_itemget")- return + if partyMember : + drop(partyMember,DROPLIST[npcId]) return QUEST = Quest(39,qn,"Red Eyed Invaders")