Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/333_BlackLionHunt/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/333_BlackLionHunt/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/333_BlackLionHunt/__init__.py (working copy) @@ -173,6 +173,7 @@ m_reward = html+morgan+"Is there anything I can do for you...?
Give freight box."+htmlend 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 @@ -252,15 +253,15 @@ while claw > 0: n = st.getRandom(5) if n < 1 : - st.giveItems(ALACRITY_POTION, ala_count) + st.giveItems(ALACRITY_POTION, int(ala_count*Config.RATE_QUESTS_REWARD)) elif n < 2 : - st.giveItems(SOULSHOT_D, soul_count) + st.giveItems(SOULSHOT_D, int(soul_count*Config.RATE_QUESTS_REWARD)) elif n < 3: - st.giveItems(SCROLL_ESCAPE, soe_count) + st.giveItems(SCROLL_ESCAPE, int(soe_count*Config.RATE_QUESTS_REWARD)) elif n < 4: - st.giveItems(SPIRITSHOT_D,spir_count) + st.giveItems(SPIRITSHOT_D,int(spir_count*Config.RATE_QUESTS_REWARD)) elif n == 4: - st.giveItems(HEALING_POTION,heal_count) + st.giveItems(HEALING_POTION,int(heal_count*Config.RATE_QUESTS_REWARD)) claw-=1 if check_eye: return p_eye @@ -302,43 +303,43 @@ statue = "Whats this? A fragment of a stone statue? Hmm it looks like a Statue of Shilen, the goddess Isnt she the goddess of death? For some reason, I dont have a good feeling about this. But, if this was not a fragment but the complete statue, it could have fetched a large amount of money There is someone who can put together a broken relic like this Hes Blacksmith Rupio. If you collect all the fragments of the statue and take them to him, he will put them together to restore it and make it complete.
" tablet = "A broken tablet fragment? Hmm It has some incomprehensible symbols on it. Is this a relic from ancient times? If it was not a fragment but a complete tablet, this might have been a very valuable historical object. If you can find all the fragments of the tablet, you can get them to be restored to its complete form If you are interested, go see Rupio the blacksmith. He is an expert of relic restoration.
" if random < 21 : - st.giveItems(GLUDIO_APPLE,1) + st.giveItems(GLUDIO_APPLE,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"
Fruit? Oh, they must be apples grown in Gludio! Mmm they look delicious. If you take them to the market before they go bad, I guess you will be able to make some money.
"+back+htmlend elif random < 41: - st.giveItems(CORN_MEAL,1) + st.giveItems(CORN_MEAL,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Isnt this corn meal? Isnt this used to feed pigs? Well, anyhow, since its not anything you can use for yourself, you should take it to the market to sell it.
"+back+htmlend elif random < 61: - st.giveItems(WOLF_PELTS,1) + st.giveItems(WOLF_PELTS,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"
Whats this pelts? Dire Wolf Pelts? They seem to have been tanned by a leather craftman. But they are not of high quality. Maybe they can be used to make leather hats? Well, anyhow, if you take them to the market, you will get some money for them.
"+back+htmlend elif random < 74: - st.giveItems(MONNSTONE,1) + st.giveItems(MONNSTONE,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"
A gem? Oh wow, a Moonstone! You should be able to sell it at a fairly good price.
"+back+htmlend elif random < 86: - st.giveItems(GLUDIO_WEETS_FLOWER,1) + st.giveItems(GLUDIO_WEETS_FLOWER,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"
Hmm? Whats this powder? Should I taste it? Yes, this must be Gludio Wheat Flour! It can be used for baking bread I guess. Well, anyhow, you should be able to sell it for a decent price at the market.
"+back+htmlend elif random < 98: - st.giveItems(SPIDERSILK_ROPE,1) + st.giveItems(SPIDERSILK_ROPE,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Whats this? Its Spidersilk Rope! Its a very strong and light rope that is made from the spidersilk that is collected from the Tarantula Spiders webs in the Spine Mountain Range. If you take it to a store, Im sure you should be able to get a really good price for it.
"+back+htmlend elif random < 99: - st.giveItems(ALEXANDRIT,1) + st.giveItems(ALEXANDRIT,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+back+htmlend elif random < 109: - st.giveItems(SILVER_TEA,1) + st.giveItems(SILVER_TEA,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Hmm? A silver bowl? And a teacup? They seem to be of pretty high quality! It seems like they were made by elven artisans. I am not interested in such exquisite items but, anyway, if you take them to a store, you should be able to sell them for a fairly good price.
"+back+htmlend elif random < 119: - st.giveItems(GOLEM_PART,1) + st.giveItems(GOLEM_PART,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Hmm? Machine parts? This Guild Mark seems to be that of the Black Anvil Guild what do you think? Although I dont know for sure, these seem to be parts that are used by dwarves to do repair work on golems. If you take them to a store, I think you will be able to sell them at a pretty reasonable price.
"+back+htmlend elif random < 123: - st.giveItems(FIRE_EMERALD,1) + st.giveItems(FIRE_EMERALD,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Whats this gem? Ah! Its a Fire Emerald! Dont you know about it? its a rare and precious gemstone that gives out a strong red light when its exposed to sun light. You are so lucky! You can take it to a store and sell it at a very high price.
"+back+htmlend elif random < 127: - st.giveItems(SILK_FROCK,1) + st.giveItems(SILK_FROCK,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Isnt this a dress?! This is a silk dress for a woman. It looks pretty expensive, dont you think? Take a look at this design. This is an item that has been imported from Avella of the East. At a time like this, who would use such a luxurious item? This must be ordered by a noblewoman who has a liking for foreign products dont you think? You should take this to a store and sell it off! Im sure you will get a very high price for it.
"+back+htmlend elif random < 131: - st.giveItems(PORCELAN_URN,1) + st.giveItems(PORCELAN_URN,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+back+htmlend elif random < 132: - st.giveItems(IMPERIAL_DIAMOND,1) + st.giveItems(IMPERIAL_DIAMOND,int(Config.RATE_QUESTS_REWARD)) return html+redfoot+standart+"Hmm? Dont tell me! I dont believe it!!! Wow, an Imperial Diamond? Isnt this the one that was used to decorate the crown of the king of Elmo-Aden? Its truly beautiful! You are extremely lucky! You got yourself a priceless item. If you take it to the market, Im sure you will be able to get a huge amount of money for it.
"+back+htmlend elif random < 147: random_stat=st.getRandom(4) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/165_WildHunt/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/165_WildHunt/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/165_WildHunt/__init__.py (working copy) @@ -1,6 +1,7 @@ # Maked by Mr. Have fun! Version 0.2 print "importing quests: 165: Wild Hunt" 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 @@ -60,7 +61,7 @@ st.set("id","165") htmltext = "30348-05.htm" st.takeItems(DARK_BEZOAR_ID,st.getQuestItemsCount(DARK_BEZOAR_ID)) - st.giveItems(LESSER_HEALING_POTION_ID,5) + st.giveItems(LESSER_HEALING_POTION_ID,int(5*Config.RATE_QUESTS_REWARD)) st.addExpAndSp(1000,0) st.set("cond","0") st.setState(COMPLETED) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/379_FantasyWine/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/379_FantasyWine/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/379_FantasyWine/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by disKret & DrLecter 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 @@ -13,13 +14,15 @@ ENKU_CHAMPION = 20291 ENKU_SHAMAN = 20292 -#CHANCE FOR DROP -CHANCE = 100 - #ITEMS LEAF = 5893 STONE = 5894 +MOB = { +ENKU_CHAMPION:[LEAF,80], +ENKU_SHAMAN:[STONE,100] +} + class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) @@ -77,22 +80,23 @@ if not st : return if st.getState() != STARTED : return - chance = st.getRandom(100) npcId = npc.getNpcId() - if npcId == ENKU_CHAMPION and chance < CHANCE and st.getQuestItemsCount(LEAF) < 80 : - st.giveItems(LEAF,1) - if st.getQuestItemsCount(LEAF) == 80 and st.getQuestItemsCount(STONE) == 100 : - st.playSound("ItemSound.quest_middle") - st.set("cond","2") - else : - st.playSound("ItemSound.quest_itemget") - elif npcId == ENKU_SHAMAN and chance < CHANCE and st.getQuestItemsCount(STONE) < 100 : - st.giveItems(STONE,1) - if st.getQuestItemsCount(LEAF) == 80 and st.getQuestItemsCount(STONE) == 100 : - st.playSound("ItemSound.quest_middle") - st.set("cond","2") - else : - st.playSound("ItemSound.quest_itemget") + numItems,chance = divmod(100*Config.RATE_DROP_QUEST,100) + item,count = MOB[npcId] + if item : + if st.getRandom(100) count : + numItems = count - prevItems + if int(numItems) != 0 : + st.giveItems(item,int(numItems)) + if (st.getQuestItemsCount(LEAF) != 80 and st.getQuestItemsCount(STONE) != 100) : + st.playSound("ItemSound.quest_itemget") + else : + st.playSound("ItemSound.quest_middle") + st.set("cond","2") return QUEST = Quest(379,qn,"Fantasy Wine") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/258_BringWolfPelt1/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/258_BringWolfPelt1/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/258_BringWolfPelt1/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by Mr. Have fun! - Version 0.3 by DrLecter 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 @@ -61,13 +62,17 @@ if st.getState() != STARTED : return count = st.getQuestItemsCount(WOLF_PELT) - if count<40 : - st.giveItems(WOLF_PELT,1) - if count == 39 : + numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100) + if st.getRandom(100) =40 : + numItems = 40 - count + if numItems != 0 : st.playSound("ItemSound.quest_middle") st.set("cond","2") - else: - st.playSound("ItemSound.quest_itemget") + else : + st.playSound("ItemSound.quest_itemget") + st.giveItems(WOLF_PELT,int(numItems)) return QUEST = Quest(258,qn,"Bring Wolf Pelt1") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/622_DeliveryOfSpecialLiquor/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/622_DeliveryOfSpecialLiquor/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/622_DeliveryOfSpecialLiquor/__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 @@ -103,11 +104,16 @@ if event == "31521-3.htm" : if st.getQuestItemsCount(FEE_OF_DRINK) == 5: st.takeItems(FEE_OF_DRINK,5) - if st.getRandom(100) < RPCHANCE : - st.giveItems(range(6847+ALT_RP100,6853,2)[st.getRandom(3)],1) - else: + random = st.getRandom(1000) + if random < 800 : st.giveItems(ADENA,18800) - st.giveItems(HASTE_POTION,1) + st.giveItems(HASTE_POTION,int(Config.RATE_QUESTS_REWARD)) + elif random < 880 : + st.giveItems(6849,1+ALT_RP100) + elif random < 960 : + st.giveItems(6847,1+ALT_RP100) + elif random < 1000 : + st.giveItems(6851,1+ALT_RP100) st.playSound("ItemSound.quest_finish") st.exitQuest(1) else: Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/432_BirthdayPartySong/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/432_BirthdayPartySong/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/432_BirthdayPartySong/__init__.py (working copy) @@ -1,6 +1,7 @@ # Created by CubicVirtuoso # Any problems feel free to drop by #l2j-datapack on irc.freenode.net 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 @@ -52,15 +53,19 @@ st = player.getQuestState(qn) if not st : return if st.getState() != STARTED : return - - count = st.getQuestItemsCount(RED_CRYSTALS_ID) - if st.getInt("cond") == 1 and count < 50 : - st.giveItems(RED_CRYSTALS_ID,1) - if count == 49 : - st.playSound("ItemSound.quest_middle") - st.set("cond","2") + if st.getInt("cond") == 1 : + numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100) + if st.getRandom(100) < chance : + numItems = numItems + 1 + count = st.getQuestItemsCount(RED_CRYSTALS_ID) + if count + numItems >= 50: + numItems = 50 - count + if numItems != 0 : + st.playSound("ItemSound.quest_middle") + st.set("cond","2") else : st.playSound("ItemSound.quest_itemget") + st.giveItems(RED_CRYSTALS_ID,int(numItems)) return QUEST = Quest(432,qn,"Birthday Party Song") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/628_HuntGoldenRam/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/628_HuntGoldenRam/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/628_HuntGoldenRam/__init__.py (working copy) @@ -3,7 +3,6 @@ import sys from net.sf.l2j import Config from net.sf.l2j.gameserver.datatables import SkillTable - 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 Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/382_KailsMagicCoin/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/382_KailsMagicCoin/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/382_KailsMagicCoin/__init__.py (working copy) @@ -15,7 +15,8 @@ VERGARA = 30687 #MOBs and CHANCES MOBS={21017:[5961],21019:[5962],21020:[5963],21022:[5961,5962,5963]} -CHANCE = 10*Config.RATE_DROP_QUEST +CHANCE = 10 +MAX = 100 class Quest (JQuest) : @@ -54,10 +55,14 @@ st = player.getQuestState(qn) if not st : return if st.getState() != STARTED : return - if st.getRandom(100) < CHANCE and st.getQuestItemsCount(ROYAL_MEMBERSHIP) : + numItems,chance = divmod(CHANCE*Config.RATE_DROP_QUEST,MAX) + if st.getQuestItemsCount(ROYAL_MEMBERSHIP) : + if st.getRandom(MAX) < chance : + numItems = numItems + 1 npcId = npc.getNpcId() - st.giveItems(MOBS[npcId][st.getRandom(len(MOBS[npcId]))],1) - st.playSound("ItemSound.quest_itemget") + if numItems != 0 : + st.giveItems(MOBS[npcId][st.getRandom(len(MOBS[npcId]))],int(numItems)) + st.playSound("ItemSound.quest_itemget") return QUEST = Quest(382, qn, "Kail's Magic Coin") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/354_ConquestOfAlligatorIsland/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/354_ConquestOfAlligatorIsland/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/354_ConquestOfAlligatorIsland/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by mtrix 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 @@ -14,14 +15,14 @@ CHANCE2 = 10 #These items are custom, since we don't have info about them. Feel free to change them as you see fit (DrLecter) #Syntax: [itemid,max qty], -RANDOM_REWARDS=[[736,15], #SoE - [1061,20],#Healing Potion - [734,15], #Haste Potion - [735,15], #Alacrity Potion - [1878,35],#Braided Hemp - [1875,15],#Stone of Purity - [1879,15],#Cokes - [1880,15],#Steel +RANDOM_REWARDS=[[736,int(15*Config.RATE_QUESTS_REWARD)], #SoE + [1061,int(20*Config.RATE_QUESTS_REWARD)],#Healing Potion + [734,int(15*Config.RATE_QUESTS_REWARD)], #Haste Potion + [735,int(15*Config.RATE_QUESTS_REWARD)], #Alacrity Potion + [1878,int(35*Config.RATE_QUESTS_REWARD)],#Braided Hemp + [1875,int(15*Config.RATE_QUESTS_REWARD)],#Stone of Purity + [1879,int(15*Config.RATE_QUESTS_REWARD)],#Cokes + [1880,int(15*Config.RATE_QUESTS_REWARD)],#Steel [956,1], #Enchant Armor D [955,1], #Enchant Weapon D ] Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/380_BringOutTheFlavorOfIngredients/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/380_BringOutTheFlavorOfIngredients/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/380_BringOutTheFlavorOfIngredients/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by disKret & DrLecter 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 @@ -101,13 +102,21 @@ if st.getInt("cond") == 1 : chance,item,max = DROPLIST[npc.getNpcId()] - if st.getRandom(100) < chance and st.getQuestItemsCount(item) < max : - st.giveItems(item,1) - if st.getQuestItemsCount(RITRONS_FRUIT) == 4 and st.getQuestItemsCount(MOON_FACE_FLOWER) == 20 and st.getQuestItemsCount(LEECH_FLUIDS) == 10 : - st.set("cond","2") - st.playSound("ItemSound.quest_middle") - else : - st.playSound("ItemSound.quest_itemget") + numItems,chance = divmod(chance*Config.RATE_DROP_QUEST,100) + count = st.getQuestItemsCount(item) + if count < max : + if st.getRandom(100) < chance : + numItems = numItems + 1 + numItems = int(numItems) + if count + numItems > max : + numItems = max - count + if numItems != 0 : + st.giveItems(item,numItems) + if st.getQuestItemsCount(RITRONS_FRUIT) == 4 and st.getQuestItemsCount(MOON_FACE_FLOWER) == 20 and st.getQuestItemsCount(LEECH_FLUIDS) == 10 : + st.set("cond","2") + st.playSound("ItemSound.quest_middle") + else : + st.playSound("ItemSound.quest_itemget") return QUEST = Quest(380,qn,"Bring Out The Flavor Of Ingredients") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/153_WharfOldtimersFavor/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/153_WharfOldtimersFavor/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/153_WharfOldtimersFavor/__init__.py (working copy) @@ -1,6 +1,7 @@ # Maked by Mr. Have fun! Version 0.2 print "importing quests: 153: Wharf Oldtimers Favor" 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 @@ -79,7 +80,7 @@ st.takeItems(CLOTH_BUNDLE_ID,st.getQuestItemsCount(CLOTH_BUNDLE_ID)) if st.getQuestItemsCount(SILVIAS_RECEIPT_ID) == 0 : st.giveItems(SILVIAS_RECEIPT_ID,1) - st.giveItems(LESSER_HEALING_POTION_ID,1) + st.giveItems(LESSER_HEALING_POTION_ID,int(Config.RATE_QUESTS_REWARD)) htmltext = "30003-01.htm" elif npcId == 30003 and int(st.get("cond"))!=0 and st.getQuestItemsCount(SILVIAS_RECEIPT_ID)!=0 : htmltext = "30003-02.htm" Index: 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 and npcId != 20921) : + drop(partyMember,DROPLIST[npcId]) return QUEST = Quest(39,qn,"Red Eyed Invaders") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/377_GiantsExploration2/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/377_GiantsExploration2/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/377_GiantsExploration2/__init__.py (working copy) @@ -14,6 +14,7 @@ #Variables #Titan Ancient Books drop rate in % DROP_RATE=15*Config.RATE_DROP_QUEST +MAX = 100 #Alternative rewards. Set this to a non-zero value and recipes will be 100% instead of 60% ALT_RP_100=0 @@ -107,10 +108,12 @@ partyMember = self.getRandomPartyMemberState(player,STARTED) if not partyMember : return st = partyMember.getQuestState(qn) - - drop = st.getRandom(100) - if drop < DROP_RATE : - st.giveItems(ANC_BOOK,1) + numItems, chance = divmod(DROP_RATE,MAX) + drop = st.getRandom(MAX) + if drop < chance : + numItems = numItems +1 + if int(numItems) != 0 : + st.giveItems(ANC_BOOK,int(numItems)) st.playSound("ItemSound.quest_itemget") return Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/107_ShowNoMercy/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/107_ShowNoMercy/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/107_ShowNoMercy/__init__.py (working copy) @@ -1,6 +1,7 @@ # Maked by Mr. Have fun! Version 0.2 print "importing quests: 107: Show No Mercy" 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 @@ -111,12 +112,12 @@ st.takeItems(LETTER_TO_ELF_ID,1) st.takeItems(HATOSS_ORDER3_ID,1) st.giveItems(BUTCHER_ID,1) - st.giveItems(LESSER_HEALING_ID,100) - st.giveItems(CRYSTAL_BATTLE,10) - st.giveItems(CRYSTAL_LOVE,10) - st.giveItems(CRYSTAL_SOLITUDE,10) - st.giveItems(CRYSTAL_FEAST,10) - st.giveItems(CRYSTAL_CELEBRATION,10) + st.giveItems(LESSER_HEALING_ID,int(100*Config.RATE_QUESTS_REWARD)) + st.giveItems(CRYSTAL_BATTLE,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(CRYSTAL_LOVE,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(CRYSTAL_SOLITUDE,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(CRYSTAL_FEAST,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(CRYSTAL_CELEBRATION,int(10*Config.RATE_QUESTS_REWARD)) st.set("cond","0") st.setState(COMPLETED) st.playSound("ItemSound.quest_finish") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/381_LetsBecomeARoyalMember/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/381_LetsBecomeARoyalMember/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/381_LetsBecomeARoyalMember/__init__.py (working copy) @@ -1,4 +1,10 @@ # Lets Become A Royal Member ver. 0.1 by DrLecter +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 + QuestNumber = 381 QuestName = "LetsBecomeARoyalMember" QuestDescription = "Let's become a Royal Member" @@ -13,13 +19,9 @@ #MOBs ANCIENT_GARGOYLE, VEGUS = 21018,27316 #CHANCES (custom values, feel free to change them) -GARGOYLE_CHANCE = 5 -VEGUS_CHANCE = 100 +GARGOYLE_CHANCE = 5*Config.RATE_DROP_QUEST +VEGUS_CHANCE = 100*Config.RATE_DROP_QUEST -import 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 class Quest (JQuest) : Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/90_SagaOfTheStormScreamer/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/90_SagaOfTheStormScreamer/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/90_SagaOfTheStormScreamer/__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 @@ -35,6 +36,8 @@ ANGEL_ALLECTOR = 27250 ARCHON_OF_HALISHA = 27219 +max = 700 + class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) @@ -274,9 +277,16 @@ st.set("cond","9") st.giveItems(RESONANCE_AMULET_3,1) st.playSound("ItemSound.quest_itemget") - if npcId in range(21646,21652) and cond == 15 and st.getQuestItemsCount(HALISHA_MARKS) < 700 : - st.giveItems(HALISHA_MARKS,1) - st.playSound("ItemSound.quest_itemget") + if npcId in range(21646,21652) and cond == 15 : + numItems,chance = divmod(100*Config.RATE_QUESTS_REWARD,100) + if st.getRandom(100) < chance : + numItems = numItems + 1 + count = st.getQuestItemsCount(HALISHA_MARKS) + if count + numItems > max : + numItems = max - count + else : + st.playSound("ItemSound.quest_itemget") + st.giveItems(HALISHA_MARKS,int(numItems)) if st.getQuestItemsCount(HALISHA_MARKS) == 700 : st.takeItems(HALISHA_MARKS,700) st.playSound("ItemSound.quest_middle") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/385_YokeofthePast/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/385_YokeofthePast/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/385_YokeofthePast/__init__.py (working copy) @@ -1,4 +1,5 @@ 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 @@ -7,6 +8,58 @@ ANCIENT_SCROLL = 5902 +CHANCE={ + 21208:7, #Hallowed Watchman + 21209:8, #Hallowed Seer + 21210:11, #Vault Guardian + 21211:11, #Vault Seer + #21212 has not spawn + 21213:14, #Hallowed Monk + 21214:19, #Vault Sentinel + 21215:19, #Vault Monk + #21216 has not spawn + 21217:24, #Hallowed Priest + 21218:30, #Vault Overlord + 21219:30, #Vault Priest + #21220 has not spawn + 21221:37, #Sepulcher Inquisitor + 21222:46, #Sepulcher Archon + 21223:45, #Sepulcher Inquisitor + 21224:50, #Sepulcher Guardian + 21225:54, #Sepulcher Sage + 21226:66, #Sepulcher Guardian + 21227:64, #Sepulcher Sage + 21228:70, #Sepulcher Guard + 21229:75, #Sepulcher Preacher + 21230:91, #Sepulcher Guard + 21231:86, #Sepulcher Preacher + #21232 has not spawn + #21233 has not spawn + #21234 has not spawn + #21235 has not spawn + 21236:12, #Barrow Sentinel + 21237:14, #Barrow Monk + 21238:19, #Grave Sentinel + 21239:19, #Grave Monk + 21240:22, #Barrow Overlord + 21241:24, #Barrow Priest + 21242:30, #Grave Overlord + 21243:30, #Grave Priest + 21244:34, #Crypt Archon + 21245:37, #Crypt Inquisitor + 21246:46, #Tomb Archon + 21247:45, #Tomb Inquisitor + 21248:50, #Crypt Guardian + 21249:54, #Crypt Sage + 21250:99, #Tomb Guardian + 21251:64, #Tomb Sage + 21252:70, #Crypt Guard + 21253:75, #Crypt Preacher + 21254:91, #Tomb Guard + 21255:86 #Tomb Preacher +} +MAX = 100 + class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) @@ -47,10 +100,12 @@ partyMember = self.getRandomPartyMemberState(player, STARTED) if not partyMember : return st = partyMember.getQuestState(qn) - - npcId = npc.getNpcId() - if st.getRandom(10)<6 : - st.giveItems(ANCIENT_SCROLL,1) + chance = CHANCE[npc.getNpcId()]*Config.RATE_DROP_QUEST + numItems, chance = divmod(chance,MAX) + if st.getRandom(MAX)= REQUIRED : + numItems = REQUIRED - count + if numItems != 0 : + st.playSound("ItemSound.quest_middle") + st.set("cond","2") else : st.playSound("ItemSound.quest_itemget") + st.giveItems(SN_SCALE,int(numItems)) return # Quest class and state definition Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/44_HelpTheSon/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/44_HelpTheSon/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/44_HelpTheSon/__init__.py (working copy) @@ -1,5 +1,6 @@ #quest by zerghase - +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 @@ -94,14 +95,19 @@ npcId = npc.getNpcId() cond=int(st.get("cond")) if cond==2: + numItems,chance = divmod(100*Config.RATE_QUESTS_REWARD,100) + if st.getRandom(100) < chance : + numItems = numItems +1 pieces=st.getQuestItemsCount(GEMSTONE_FRAGMENT) - if pieces= MAX_COUNT : + numItems = MAX_COUNT - pieces + if numItems != 0 : + st.playSound("ItemSound.quest_middle") + st.set("cond", "3") + else : st.playSound("ItemSound.quest_itemget") - elif pieces==MAX_COUNT-1: - st.giveItems(GEMSTONE_FRAGMENT,1) - st.playSound("ItemSound.quest_middle") - st.set("cond", "3") + st.giveItems(GEMSTONE_FRAGMENT,int(numItems)) + return QUEST=Quest(44,qn,"Help The Son!") CREATED=State('Start', QUEST) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/106_ForgottenTruth/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/106_ForgottenTruth/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/106_ForgottenTruth/__init__.py (working copy) @@ -1,6 +1,7 @@ # Made by Mr. Have fun! Version 0.2 # Version 0.3 by H1GHL4ND3R 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 @@ -80,15 +81,15 @@ st.takeItems(KARTAS_TRANSLATION,1) st.giveItems(ELDRITCH_DAGGER,1) for item in range(4412,4417) : - st.giveItems(item,10) - st.giveItems(1060,100) + st.giveItems(item,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(1060,int(100*Config.RATE_QUESTS_REWARD)) if st.getPlayer().getClassId().isMage(): item = 2509 - qty = 300 + qty = 500 else : item = 1835 - qty = 100 - st.giveItems(item,qty) + qty = 1000 + st.giveItems(item,int(qty*Config.RATE_QUESTS_REWARD)) st.unset("cond") st.setState(COMPLETED) st.playSound("ItemSound.quest_finish") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/42_HelpTheUncle/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/42_HelpTheUncle/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/42_HelpTheUncle/__init__.py (working copy) @@ -1,5 +1,6 @@ #quest by zerghase - +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 @@ -96,14 +97,19 @@ npcId = npc.getNpcId() cond=int(st.get("cond")) if cond==2: + numItems,chance = divmod(100*Config.RATE_QUESTS_REWARD,100) + if st.getRandom(100) < chance : + numItems = numItems +1 pieces=st.getQuestItemsCount(MAP_PIECE) - if pieces= MAX_COUNT : + numItems = MAX_COUNT - pieces + if numItems != 0: + st.playSound("ItemSound.quest_middle") + st.set("cond", "3") + else : st.playSound("ItemSound.quest_itemget") - elif pieces==MAX_COUNT-1: - st.giveItems(MAP_PIECE,1) - st.playSound("ItemSound.quest_middle") - st.set("cond", "3") + st.giveItems(MAP_PIECE,int(numItems)) + return QUEST=Quest(42,qn,"Help The Uncle!") CREATED=State('Start', QUEST) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/624_TheFinestIngredientsPart1/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/624_TheFinestIngredientsPart1/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/624_TheFinestIngredientsPart1/__init__.py (working copy) @@ -1,5 +1,6 @@ # 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 @@ -15,8 +16,13 @@ #MOBS MOBS = HOT_SPRINGS_ATROX,HOT_SPRINGS_ATROXSPAWN,HOT_SPRINGS_BANDERSNATCH,HOT_SPRINGS_NEPENTHES = 21321,21317,21322,21319 +ITEMS={ + HOT_SPRINGS_ATROX:SECRET_SPICE, + HOT_SPRINGS_ATROXSPAWN:SECRET_SPICE, + HOT_SPRINGS_BANDERSNATCH:FOOT_OF_BANDERSNATCHLING, + HOT_SPRINGS_NEPENTHES:TRUNK_OF_NEPENTHES +} - class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) @@ -75,32 +81,26 @@ st = partyMember.getQuestState(qn) if st : if st.getState() == STARTED : - count_trunk = st.getQuestItemsCount(TRUNK_OF_NEPENTHES) - count_foot = st.getQuestItemsCount(FOOT_OF_BANDERSNATCHLING) - count_spice = st.getQuestItemsCount(SECRET_SPICE) npcId = npc.getNpcId() if st.getInt("cond") == 1: - if npcId == HOT_SPRINGS_NEPENTHES and count_trunk < 50 : - st.giveItems(TRUNK_OF_NEPENTHES,1) - if count_trunk == 49 and count_foot == count_spice == 50 : + numItems,chance = divmod(100*Config.RATE_DROP_QUEST,100) + if st.getRandom(100) 50 : + numItems = 50 - count + st.giveItems(item,numItems) + count_trunk = st.getQuestItemsCount(TRUNK_OF_NEPENTHES) + count_foot = st.getQuestItemsCount(FOOT_OF_BANDERSNATCHLING) + count_spice = st.getQuestItemsCount(SECRET_SPICE) + if count_trunk == count_foot == count_spice == 50 : st.set("cond","3") st.playSound("ItemSound.quest_middle") else: st.playSound("ItemSound.quest_itemget") - elif npcId == HOT_SPRINGS_BANDERSNATCH and count_foot < 50 : - st.giveItems(FOOT_OF_BANDERSNATCHLING,1) - if count_trunk == 50 and count_foot == count_spice == 50 : - st.set("cond","3") - st.playSound("ItemSound.quest_middle") - else: - st.playSound("ItemSound.quest_itemget") - elif npcId in [ HOT_SPRINGS_ATROX,HOT_SPRINGS_ATROXSPAWN ] and count_spice < 50 : - st.giveItems(SECRET_SPICE,1) - if count_trunk == count_foot == 50 and count_spice == 49 : - st.set("cond","3") - st.playSound("ItemSound.quest_middle") - else: - st.playSound("ItemSound.quest_itemget") return QUEST = Quest(624,qn,"The Finest Ingredients - Part 1") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/351_BlackSwan/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/351_BlackSwan/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/351_BlackSwan/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by mtrix 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 @@ -35,7 +36,7 @@ if amount2 : htmltext = "30969-03.htm" st.giveItems(ADENA,amount2*3880) - st.giveItems(BILL_OF_IASON_HEINE,amount2) + st.giveItems(BILL_OF_IASON_HEINE,int(amount2*Config.RATE_QUESTS_REWARD)) st.takeItems(BARREL_OF_LEAGUE,-1) elif event == "30969-06.htm" : if not (amount + amount2) : Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/155_FindSirWindawood/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/155_FindSirWindawood/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/155_FindSirWindawood/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by Mr. - Version 0.3 by DrLecter 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 @@ -43,7 +44,7 @@ htmltext = "30042-05.htm" elif npcId == 30311 and st.getInt("cond") and st.getQuestItemsCount(OFFICIAL_LETTER_ID) and id == STARTED: st.takeItems(OFFICIAL_LETTER_ID,-1) - st.giveItems(HASTE_POTION_ID,1) + st.giveItems(HASTE_POTION_ID,int(Config.RATE_QUESTS_REWARD)) st.unset("cond") st.setState(COMPLETED) st.playSound("ItemSound.quest_finish") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/373_SupplierOfReagents/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/373_SupplierOfReagents/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/373_SupplierOfReagents/__init__.py (working copy) @@ -326,11 +326,14 @@ drop = st.getRandom(100) for entry in DROPLIST[npcId] : item,chance=entry + numItems,chance = divmod(chance*Config.RATE_DROP_QUEST,100) if drop < chance : - qty=1+st.getRandom(int(Config.RATE_DROP_QUEST)) - st.giveItems(item,qty) + numItems = numItems +1 + numItems = int(numItems) + st.giveItems(item,numItems) + if numItems != 0 : st.playSound("ItemSound.quest_itemget") - break + break return # Quest class and state definition Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/102_FungusFever/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/102_FungusFever/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/102_FungusFever/__init__.py (working copy) @@ -1,5 +1,6 @@ # Made by Mr. Have fun! Version 0.2 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 @@ -123,13 +124,13 @@ st.set("onlyone","1") if st.getPlayer().getClassId().getId() in range(18,25) : st.giveItems(SWORD_OF_SENTINEL_ID,1) - st.giveItems(1835,1000) + st.giveItems(1835,int(1000*Config.RATE_QUESTS_REWARD)) else: st.giveItems(STAFF_OF_SENTINEL_ID,1) - st.giveItems(2509,1000) + st.giveItems(2509,int(1000*Config.RATE_QUESTS_REWARD)) for item in range(4412,4417) : - st.giveItems(item,10) - st.giveItems(1060,100) + st.giveItems(item,int(10*Config.RATE_QUESTS_REWARD)) + st.giveItems(1060,int(100*Config.RATE_QUESTS_REWARD)) return htmltext def onKill (self,npc,player): Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/43_HelpTheSister/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/43_HelpTheSister/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/43_HelpTheSister/__init__.py (working copy) @@ -1,5 +1,6 @@ #quest by zerghase - +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 @@ -93,14 +94,19 @@ npcId = npc.getNpcId() cond=int(st.get("cond")) if cond==2: + numItems,chance = divmod(100*Config.RATE_QUESTS_REWARD,100) + if st.getRandom(100) < chance : + numItems = numItems +1 pieces=st.getQuestItemsCount(MAP_PIECE) - if pieces= MAX_COUNT : + numItems = MAX_COUNT - pieces + if numItems != 0: + st.playSound("ItemSound.quest_middle") + st.set("cond", "3") + else : st.playSound("ItemSound.quest_itemget") - elif pieces==MAX_COUNT-1: - st.giveItems(MAP_PIECE,1) - st.playSound("ItemSound.quest_middle") - st.set("cond", "3") + st.giveItems(MAP_PIECE,int(numItems)) + return QUEST=Quest(43,qn,"Help The Sister!") CREATED=State('Start', QUEST) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/376_GiantsExploration1/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/376_GiantsExploration1/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/376_GiantsExploration1/__init__.py (working copy) @@ -13,8 +13,9 @@ #Variables #Ancient parchment drop rate in % DROP_RATE = 15*Config.RATE_DROP_QUEST +MAX = 100 #Mysterious Book drop rate in % -DROP_RATE_2 = 5 +DROP_RATE_2 = 5*Config.RATE_DROP_QUEST #By changing this setting you can make a group of recipes harder to get RP_BALANCE = 50 #Changing this value to non-zero, will turn recipes to 100% instead of 60% @@ -163,8 +164,11 @@ if partyMember.getQuestState(qn).getRandom(2) : partyMember = partyMember2 st = partyMember.getQuestState(qn) - if st.getRandom(100) < DROP_RATE : - st.giveItems(ANC_SCROLL,1) + numItems, chance = divmod(DROP_RATE,MAX) + if st.getRandom(MAX) < chance : + numItems = numItems + 1 + if int(numItems) != 0 : + st.giveItems(ANC_SCROLL,int(numItems)) st.playSound("ItemSound.quest_itemget") return Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/386_StolenDignity/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/386_StolenDignity/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/386_StolenDignity/__init__.py (working copy) @@ -36,6 +36,34 @@ #Mobs MOBS = [ 20670,20671,20954,20956,20958,20959,20960,20964,20969,20967,20970,20971,20974,20975,21001,21003,21005,21020,21021,21089,21108,21110,21113,21114,21116 ] +MOB={ + 20670:14, + 20671:14, + 20954:11, + 20956:13, + 20958:13, + 20959:13, + 20960:11, + 20964:13, + 20969:19, + 20967:18, + 20970:18, + 20971:18, + 20974:28, + 20975:28, + 21001:14, + 21003:18, + 21005:14, + 21020:16, + 21021:15, + 21089:13, + 21108:19, + 21110:18, + 21113:25, + 21114:23, + 21116:25 +} +MAX = 100 #templates number = ["second","third","fourth","fifth","sixth"] @@ -171,11 +199,13 @@ partyMember = self.getRandomPartyMemberState(player, STARTED) if not partyMember : return st = partyMember.getQuestState(qn) - - count = st.getQuestItemsCount(SI_ORE) - if st.getRandom(100) < DROP_RATE : - st.giveItems(SI_ORE,1) - if (count + 1) % REQUIRED_ORE == 0 : + numItems,chance = divmod(MOB[npc.getNpcId()]*Config.RATE_DROP_QUEST,MAX) + prevItems = st.getQuestItemsCount(SI_ORE) + if st.getRandom(MAX) < chance : + numItems = numItems + 1 + if numItems != 0 : + st.giveItems(SI_ORE,int(numItems)) + if int(prevItems+numItems)/REQUIRED_ORE > int(prevItems)/REQUIRED_ORE : st.playSound("ItemSound.quest_middle") else : st.playSound("ItemSound.quest_itemget") Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/160_NerupasFavor/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/160_NerupasFavor/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/160_NerupasFavor/__init__.py (working copy) @@ -1,6 +1,7 @@ # Made by Mr. Have fun! # Version 0.3 by H1GHL4ND3R 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 @@ -86,7 +87,7 @@ htmltext = "30147-03.htm" elif npcId == 30370 and st.getQuestItemsCount(NIGHTSHADE_LEAF) : st.takeItems(NIGHTSHADE_LEAF,1) - st.giveItems(LESSER_HEALING_POTION,1) + st.giveItems(LESSER_HEALING_POTION,int(Config.RATE_QUESTS_REWARD)) st.addExpAndSp(1000,0) st.unset("cond") st.setState(COMPLETED) Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/235_MimirsElixir/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/235_MimirsElixir/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/235_MimirsElixir/__init__.py (working copy) @@ -9,7 +9,7 @@ qn = "235_MimirsElixir" QUEST_NUMBER,QUEST_NAME,QUEST_DESCRIPTION = 235,"MimirsElixir","Mimir's Elixir" -DROP_RATE = 45 +DROP_RATE = 20 #prerequisites: STAR_OF_DESTINY = 5011 Index: C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/634_InSearchofDimensionalFragments/__init__.py =================================================================== --- C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/634_InSearchofDimensionalFragments/__init__.py (revision 2915) +++ C:/Documents and Settings/Sparrowhawk/workspace/l2jdp/data/jscript/quests/634_InSearchofDimensionalFragments/__init__.py (working copy) @@ -1,4 +1,5 @@ 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 @@ -43,8 +44,11 @@ st = player.getQuestState(qn) if st : if st.getState() == STARTED : - if st.getRandom(10)<6 : - st.giveItems(DIMENSION_FRAGMENT_ID,1) + numItems = int((npc.getLevel() * 0.15 +1.6)*Config.RATE_DROP_QUEST) + if st.getRandom(100)>=10 : + numItems = 0 + if numItems > 0 : + st.giveItems(DIMENSION_FRAGMENT_ID,numItems) st.playSound("ItemSound.quest_itemget") return