Skip to content
Snippets Groups Projects
Commit 52d209b4 authored by ivantotov's avatar ivantotov
Browse files

BETA: Quests in Java:

	* Certified Berserker (64)
	* PathOfTheScavenger (417)
Reviewed by: Zoey76 
parent 0374885d
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 435 deletions
......@@ -211,7 +211,6 @@ quests/23_LidiasHeart/__init__.py
quests/25_HidingBehindTheTruth/__init__.py
quests/60_GoodWorkReward/__init__.py
quests/61_LawEnforcement/__init__.py
quests/64_CertifiedBerserker/__init__.py
quests/65_CertifiedSoulBreaker/__init__.py
quests/66_CertifiedArbalester/__init__.py
quests/117_OceanOfDistantStar/__init__.py
......@@ -260,7 +259,6 @@ quests/379_FantasyWine/__init__.py
quests/383_SearchingForTreasure/__init__.py
quests/384_WarehouseKeepersPastime/__init__.py
quests/386_StolenDignity/__init__.py
quests/417_PathToScavenger/__init__.py
quests/419_GetAPet/__init__.py
quests/422_RepentYourSins/__init__.py
quests/426_FishingShot/__init__.py
......
<html><body>Armor Merchant Shari:<br>
Wow, the item has arrived! Thank you, thank you!<br>
Here is the payment! And tell Mion I'm really thankful ... please tell her!
</body></html>
\ No newline at end of file
<html><body>Armor Merchant Shari:<br>
Wow, the item has arrived! Thank you again and again!<br>
Wonderful! Please take the payment for the item.<br>
(He is more stupid than he looks. To become a victim of Mion ... tsk, tsk ...)<br>
What? Ah! I said nothing! Just some mumbling! Ha ha!
</body></html>
\ No newline at end of file
<html><body>Armor Merchant Shari:<br>
Give the payment to Mion, please! And don't forget to tell her I said thanks! Have a nice day, then!
</body></html>
\ No newline at end of file
<html><body>Grocer Mion:<br>
Good! Then please take this potion to<font color="LEVEL"> Maphr Priest Zimenf</font> and bring back the payment for it as well.<br>
Thank you in advance!
</body></html>
\ No newline at end of file
<html><body>Grocer Mion:<br>
Good! Then please take this weapon to<font color="LEVEL"> Armor Merchant Shari</font>. And you must bring back the payment for it!<br>
Thank you in advance!
</body></html>
\ No newline at end of file
<html><body>Grocer Mion:<br>
Humph! And I was trying to get some free work done in the name of my brother!<br>
You are just as lazy as he is! I would be better off if I did it! My brother said he would stop by at the<font color="LEVEL"> abandoned mine east of the village</font>, and then go to the<font color="LEVEL"> east end of the Dwarven kingdom</font> to praise the work of Lucien. Then, he was going to go see the wide ocean on the<font color="LEVEL"> northern coastline</font>.<br>
But if you want to find him, you will go through some difficulties! Hu hu! Well then, good luck!
</body></html>
\ No newline at end of file
<html><body>Grocer Mion:<br>
You forgot? Lazy bones and forgetful at that!<br>
My brother said he would stop by at the<font color="LEVEL"> abandoned mine east of the village</font>, and then go to the<font color="LEVEL"> east end of the Dwarven kingdom</font> to praise the work of Lucien. After that, he said he was going to watch the wide ocean on the<font color="LEVEL"> northern coastline</font>.<br>
Don't forget this time!
</body></html>
\ No newline at end of file
<html><body>Grocer Mion:<br>
He he... I found out about my brother!<br>
My brother said he would stop by at the<font color="LEVEL"> abandoned mines east of the village,</font> and then go to the<font color="LEVEL"> east end of the Dwarven kingdom</font> to praise the work of Lucien. Then, he was going to go see the wide ocean on the<font color="LEVEL"> northern coastline.</font><br>
But if you want to find him, you will go through some difficulties! Good luck then! (That was some of the best free labor in a looong time. Hoo hoo!)
</body></html>
\ No newline at end of file
<html><body>Collector Pippi:<br>
Made you look!<br>
Hey, come back when your nose has stopped running, okay?
</body></html>
\ No newline at end of file
<html><body>Collector Pippi:<br>
If you want to know where Master Toma is, go to<font color="LEVEL"> Trader Mion</font>! Didn't I give you a letter of introduction?
</body></html>
\ No newline at end of file
<html><body>Master Toma:<br>
Who are you?<br>
Oh, a letter from Mion?<br>
Hmm... So you want to be a Scavenger?<br>
Do just as I say.<br>
This body yearns for something sweet. What do you think?<br>
My friend says that if you catch the hunter bear in the mines, a<font color="LEVEL"> honey bear</font> comes out. And he said that the honey was wonderful.<br>
Yum yum... Knock down the honey bear and rummage through with Spoil and bring back<font color="LEVEL"> five honey jars.</font>
</body></html>
\ No newline at end of file
<html><body>Master Toma:<br>
Stop speaking to me.<br>
Have you brought the honey jars from the honey bear in the mines? If you do not have five jars, it is the same as not bringing any.<br>
I am very disappointed to see that you have come empty-handed. Cast Spoil and bring them quickly.
</body></html>
\ No newline at end of file
<html><body>Master Toma:<br>
Oh, Oh, mmm ... mmm ...<br>
Ahh! Truly delicious ...<br>
This time, hunt some monsters. Catch the<font color="LEVEL"> hunter tarantula</font> or<font color="LEVEL"> plunder tarantula</font> and bring the bead that it is holding.<br>
Bring back many ... many ... At least <font color="LEVEL">twenty</font>. Oh yes, don't forget to take it out with the sweeper ...
</body></html>
<html><body>Master Toma:<br>
A glittering bead. Thank you.<br>
Now if you take this to my friend, the test is over. Tell him that I am paying back the money he lent me for drinks last time. My friend is<font color="LEVEL"> Warehouse Keeper Raut in Gludin</font>. Thank you for your trouble...
</body></html>
\ No newline at end of file
<html><body>Master Toma:<br>
<font color="LEVEL">He is Warehouse Keeper Raut of Gludin.</font> Hurry along and take it to him.
</body></html>
# Made by Mr. Have fun! Version 0.2
# 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
from com.l2jserver.gameserver.network.serverpackets import SocialAction
qn = "417_PathToScavenger"
RING_OF_RAVEN = 1642
PIPIS_LETTER = 1643
ROUTS_TP_SCROLL = 1644
SUCCUBUS_UNDIES = 1645
MIONS_LETTER = 1646
BRONKS_INGOT = 1647
CHALIS_AXE = 1648
ZIMENFS_POTION = 1649
BRONKS_PAY = 1650
CHALIS_PAY = 1651
ZIMENFS_PAY = 1652
BEAR_PIC = 1653
TARANTULA_PIC = 1654
HONEY_JAR = 1655
BEAD = 1656
BEAD_PARCEL = 1657
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = range(1643,1658)
def onEvent (self,event,st) :
htmltext = event
level = st.getPlayer().getLevel()
classId = st.getPlayer().getClassId().getId()
if event == "1" :
st.set("id","0")
if level >= 18 and classId == 0x35 and st.getQuestItemsCount(RING_OF_RAVEN) == 0 :
st.set("cond","1")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
st.giveItems(PIPIS_LETTER,1)
htmltext = "30524-05.htm"
elif classId != 0x35 :
if classId == 0x36 :
htmltext = "30524-02a.htm"
else:
htmltext = "30524-08.htm"
elif level < 18 and classId == 0x35 :
htmltext = "30524-02.htm"
elif level >= 18 and classId == 0x35 and st.getQuestItemsCount(RING_OF_RAVEN) == 1 :
htmltext = "30524-04.htm"
elif event == "30519_1" :
if st.getQuestItemsCount(PIPIS_LETTER):
st.takeItems(PIPIS_LETTER,1)
st.set("cond","2")
n = self.getRandom(3)
if n == 0:
htmltext = "30519-02.htm"
st.giveItems(ZIMENFS_POTION,1)
elif n == 1:
htmltext = "30519-03.htm"
st.giveItems(CHALIS_AXE,1)
elif n == 2:
htmltext = "30519-04.htm"
st.giveItems(BRONKS_INGOT,1)
else:
htmltext = Quest.getNoQuestMsg(player)
elif event == "30519_2" :
htmltext = "30519-06.htm"
elif event == "30519_3" :
htmltext = "30519-07.htm"
st.set("id",str(st.getInt("id")+1))
elif event == "30519_4" :
n = self.getRandom(2)
if n == 0:
htmltext = "30519-06.htm"
if n == 1:
htmltext = "30519-11.htm"
elif event == "30519_5" :
if st.getQuestItemsCount(ZIMENFS_POTION) or st.getQuestItemsCount(CHALIS_AXE) or st.getQuestItemsCount(BRONKS_INGOT):
if st.getInt("id") / 10 < 2 :
htmltext = "30519-07.htm"
st.set("id",str(st.getInt("id")+1))
elif st.getInt("id") / 10 >= 2 and st.getInt("cond") == 0 :
htmltext = "30519-09.htm"
if st.getInt("id") / 10 < 3 :
st.set("id",str(st.getInt("id")+1))
elif st.getInt("id") / 10 >= 3 and st.getInt("cond") > 0 :
htmltext = "30519-10.htm"
st.giveItems(MIONS_LETTER,1)
st.takeItems(CHALIS_AXE,1)
st.takeItems(ZIMENFS_POTION,1)
st.takeItems(BRONKS_INGOT,1)
else:
htmltext = Quest.getNoQuestMsg(player)
elif event == "30519_6" :
if st.getQuestItemsCount(ZIMENFS_PAY) or st.getQuestItemsCount(CHALIS_PAY) or st.getQuestItemsCount(BRONKS_PAY):
n = self.getRandom(3)
st.takeItems(ZIMENFS_PAY,1)
st.takeItems(CHALIS_PAY,1)
st.takeItems(BRONKS_PAY,1)
if n == 0:
htmltext = "30519-02.htm"
st.giveItems(ZIMENFS_POTION,1)
elif n == 1:
htmltext = "30519-03.htm"
st.giveItems(CHALIS_AXE,1)
elif n == 2:
htmltext = "30519-04.htm"
st.giveItems(BRONKS_INGOT,1)
else:
htmltext = Quest.getNoQuestMsg(player)
elif event == "30316_1" :
if st.getQuestItemsCount(BEAD_PARCEL):
htmltext = "30316-02.htm"
st.takeItems(BEAD_PARCEL,1)
st.giveItems(ROUTS_TP_SCROLL,1)
st.set("cond","10")
else:
htmltext = Quest.getNoQuestMsg(player)
elif event == "30316_2" :
if st.getQuestItemsCount(BEAD_PARCEL):
htmltext = "30316-03.htm"
st.takeItems(BEAD_PARCEL,1)
st.giveItems(ROUTS_TP_SCROLL,1)
st.set("cond","10")
else:
htmltext = Quest.getNoQuestMsg(player)
elif event == "30557_1" :
htmltext = "30557-02.htm"
elif event == "30557_2" :
if st.getQuestItemsCount(ROUTS_TP_SCROLL):
htmltext = "30557-03.htm"
st.takeItems(ROUTS_TP_SCROLL,1)
st.giveItems(SUCCUBUS_UNDIES,1)
st.set("cond","11")
else:
htmltext = Quest.getNoQuestMsg(player)
return htmltext
def onTalk (self,npc,player):
htmltext = Quest.getNoQuestMsg(player)
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getId()
id = st.getState()
if npcId != 30524 and id != State.STARTED : return htmltext
cond = st.getInt("cond")
if npcId == 30524 and cond==0 :
htmltext = "30524-01.htm"
elif npcId == 30524 and cond and st.getQuestItemsCount(PIPIS_LETTER) :
htmltext = "30524-06.htm"
elif npcId == 30524 and cond and st.getQuestItemsCount(PIPIS_LETTER)==0 :
htmltext = "30524-07.htm"
elif npcId == 30519 and cond and st.getQuestItemsCount(PIPIS_LETTER) :
htmltext = "30519-01.htm"
elif npcId == 30519 and cond and ((st.getQuestItemsCount(CHALIS_AXE)+st.getQuestItemsCount(BRONKS_INGOT)+st.getQuestItemsCount(ZIMENFS_POTION))==1) and ((st.getInt("id") / 10)==0) :
htmltext = "30519-05.htm"
elif npcId == 30519 and cond and ((st.getQuestItemsCount(CHALIS_AXE)+st.getQuestItemsCount(BRONKS_INGOT)+st.getQuestItemsCount(ZIMENFS_POTION))==1) and ((st.getInt("id") / 10)) :
htmltext = "30519-08.htm"
elif npcId == 30519 and cond and ((st.getQuestItemsCount(CHALIS_PAY)+st.getQuestItemsCount(BRONKS_PAY)+st.getQuestItemsCount(ZIMENFS_PAY))==1) and (st.getInt("id") < 50) :
htmltext = "30519-12.htm"
elif npcId == 30519 and cond and ((st.getQuestItemsCount(CHALIS_PAY)+st.getQuestItemsCount(BRONKS_PAY)+st.getQuestItemsCount(ZIMENFS_PAY))==1) and (st.getInt("id") >= 50) :
htmltext = "30519-15.htm"
st.giveItems(MIONS_LETTER,1)
st.takeItems(CHALIS_PAY,1)
st.takeItems(ZIMENFS_PAY,1)
st.takeItems(BRONKS_PAY,1)
st.set("cond","4")
elif npcId == 30519 and cond and st.getQuestItemsCount(MIONS_LETTER) :
htmltext = "30519-13.htm"
elif npcId == 30519 and cond and (st.getQuestItemsCount(BEAR_PIC) or st.getQuestItemsCount(TARANTULA_PIC) or st.getQuestItemsCount(BEAD_PARCEL) or st.getQuestItemsCount(ROUTS_TP_SCROLL) or st.getQuestItemsCount(SUCCUBUS_UNDIES)) :
htmltext = "30519-14.htm"
elif npcId == 30517 and cond and st.getQuestItemsCount(CHALIS_AXE)==1 and st.getInt("id") < 20 :
htmltext = "30517-01.htm"
st.takeItems(CHALIS_AXE,1)
st.giveItems(CHALIS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30517 and cond and st.getQuestItemsCount(CHALIS_AXE)==1 and st.getInt("id") >= 20 :
htmltext = "30517-02.htm"
st.takeItems(CHALIS_AXE,1)
st.giveItems(CHALIS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30517 and cond and st.getQuestItemsCount(CHALIS_PAY)==1 :
htmltext = "30517-03.htm"
elif npcId == 30525 and cond and st.getQuestItemsCount(BRONKS_INGOT)==1 and st.getInt("id") < 20 :
htmltext = "30525-01.htm"
st.takeItems(BRONKS_INGOT,1)
st.giveItems(BRONKS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30525 and cond and st.getQuestItemsCount(BRONKS_INGOT)==1 and st.getInt("id") >= 20 :
htmltext = "30525-02.htm"
st.takeItems(BRONKS_INGOT,1)
st.giveItems(BRONKS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30525 and cond and st.getQuestItemsCount(BRONKS_PAY)==1 :
htmltext = "30525-03.htm"
elif npcId == 30538 and cond and st.getQuestItemsCount(ZIMENFS_POTION)==1 and st.getInt("id") < 20 :
htmltext = "30538-01.htm"
st.takeItems(ZIMENFS_POTION,1)
st.giveItems(ZIMENFS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30538 and cond and st.getQuestItemsCount(ZIMENFS_POTION)==1 and st.getInt("id") >= 20 :
htmltext = "30538-02.htm"
st.takeItems(ZIMENFS_POTION,1)
st.giveItems(ZIMENFS_PAY,1)
if st.getInt("id") >= 50 :
st.set("cond","3")
st.set("id",str(st.getInt("id")+10))
elif npcId == 30538 and cond and st.getQuestItemsCount(ZIMENFS_PAY)==1 :
htmltext = "30538-03.htm"
elif npcId == 30556 and cond and st.getQuestItemsCount(MIONS_LETTER)==1 :
htmltext = "30556-01.htm"
st.takeItems(MIONS_LETTER,1)
st.giveItems(BEAR_PIC,1)
st.set("cond","5")
st.set("id",str(0))
elif npcId == 30556 and cond and st.getQuestItemsCount(BEAR_PIC)==1 and st.getQuestItemsCount(HONEY_JAR)<5 :
htmltext = "30556-02.htm"
elif npcId == 30556 and cond and st.getQuestItemsCount(BEAR_PIC)==1 and st.getQuestItemsCount(HONEY_JAR)>=5 :
htmltext = "30556-03.htm"
st.takeItems(HONEY_JAR,st.getQuestItemsCount(HONEY_JAR))
st.takeItems(BEAR_PIC,1)
st.giveItems(TARANTULA_PIC,1)
st.set("cond","7")
elif npcId == 30556 and cond and st.getQuestItemsCount(TARANTULA_PIC)==1 and st.getQuestItemsCount(BEAD)<20 :
htmltext = "30556-04.htm"
elif npcId == 30556 and cond and st.getQuestItemsCount(TARANTULA_PIC)==1 and st.getQuestItemsCount(BEAD)>=20 :
htmltext = "30556-05.htm"
st.takeItems(BEAD,st.getQuestItemsCount(BEAD))
st.takeItems(TARANTULA_PIC,1)
st.giveItems(BEAD_PARCEL,1)
st.set("cond","9")
elif npcId == 30556 and cond and st.getQuestItemsCount(BEAD_PARCEL) :
htmltext = "30556-06.htm"
elif npcId == 30556 and cond and (st.getQuestItemsCount(ROUTS_TP_SCROLL) or st.getQuestItemsCount(SUCCUBUS_UNDIES)) :
htmltext = "30556-07.htm"
elif npcId == 30316 and cond and st.getQuestItemsCount(BEAD_PARCEL)==1 :
htmltext = "30316-01.htm"
elif npcId == 30316 and cond and st.getQuestItemsCount(ROUTS_TP_SCROLL)==1 :
htmltext = "30316-04.htm"
elif npcId == 30316 and cond and st.getQuestItemsCount(SUCCUBUS_UNDIES)==1 :
htmltext = "30316-05.htm"
st.takeItems(SUCCUBUS_UNDIES,1)
isFinished = st.getGlobalQuestVar("1ClassQuestFinished")
if isFinished == "" :
if player.getLevel() >= 20 :
st.addExpAndSp(160267, 17706)
elif player.getLevel() == 19 :
st.addExpAndSp(228064, 21055)
else:
st.addExpAndSp(295862, 24404)
st.giveItems(57, 163800)
st.giveItems(RING_OF_RAVEN,1)
st.set("cond","0")
st.exitQuest(False)
st.saveGlobalQuestVar("1ClassQuestFinished","1")
st.playSound("ItemSound.quest_finish")
player.sendPacket(SocialAction(player.getObjectId(),3))
elif npcId == 30557 and cond and st.getQuestItemsCount(ROUTS_TP_SCROLL)==1 :
htmltext = "30557-01.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()
if npcId == 20777 :
if st.getInt("cond") and st.getQuestItemsCount(BEAR_PIC) == 1 and st.getQuestItemsCount(HONEY_JAR) < 5 :
if st.getInt("id") > 20 :
n = ((st.getInt("id")-20)*10)
if self.getRandom(100) <= n :
st.addSpawn(27058)
st.set("id","0")
else:
st.set("id",str(st.getInt("id")+1))
else:
st.set("id",str(st.getInt("id")+1))
elif npcId == 27058 :
if st.getInt("cond") and st.getQuestItemsCount(BEAR_PIC) == 1 and st.getQuestItemsCount(HONEY_JAR) < 5 :
if npc.isSpoil() :
st.giveItems(HONEY_JAR,1)
if st.getQuestItemsCount(HONEY_JAR) == 5 :
st.playSound("ItemSound.quest_middle")
st.set("cond","6")
else:
st.playSound("ItemSound.quest_itemget")
elif npcId == 20403 :
if st.getInt("cond") and st.getQuestItemsCount(TARANTULA_PIC) == 1 and st.getQuestItemsCount(BEAD) < 20 :
if npc.isSpoil() :
if self.getRandom(2) == 0 :
st.giveItems(BEAD,1)
if st.getQuestItemsCount(BEAD) == 20 :
st.playSound("ItemSound.quest_middle")
st.set("cond","8")
else:
st.playSound("ItemSound.quest_itemget")
elif npcId == 20508 :
if st.getInt("cond") and st.getQuestItemsCount(TARANTULA_PIC) == 1 and st.getQuestItemsCount(BEAD) < 20 :
if npc.isSpoil() :
if self.getRandom(10) < 6 :
st.giveItems(BEAD,1)
if st.getQuestItemsCount(BEAD) == 20 :
st.playSound("ItemSound.quest_middle")
st.set("cond","8")
else:
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(417,qn,"Path To Scavenger")
QUEST.addStartNpc(30524)
QUEST.addTalkId(30524)
QUEST.addTalkId(30316)
QUEST.addTalkId(30517)
QUEST.addTalkId(30519)
QUEST.addTalkId(30525)
QUEST.addTalkId(30538)
QUEST.addTalkId(30556)
QUEST.addTalkId(30557)
QUEST.addKillId(20403)
QUEST.addKillId(27058)
QUEST.addKillId(20508)
QUEST.addKillId(20777)
\ No newline at end of file
<html><body>Master Entien:<br>
You came here after receiving my message? You came to right place! As you know, some of the thieves who attacked
our wagon have scattered to notify their superiors of the cargo's destination. You must prevent
them from doing so!<br>
According to the report I received from a guild member, the thieves have disguised themselves as monsters and scattered
in all directions. I will track those who went south and west; you must find those thieves who went east
and north. <font color="LEVEL">The thief who went east is disguised as a Dead Seeker of Execution Grounds,
while the one who went north is disguised as a Marsh Stakato Drone from the Cruma Marshlands.
</font> Find them, slay them and return to me!
</body></html>
\ No newline at end of file
<html><body>Master Entien:<br>
<font color="LEVEL">The thief who went east is disguised as a Dead Seeker of Execution Grounds,
while the one who went north is disguised as a Marsh Stakato Drone from the Cruma Marshlands.
</font> Find them, slay them and return to me!
</body></html>
\ No newline at end of file
<html><body>Master Orkurus:<br>
Go to Master Tenain in the Town of Giran and assist him.
</body></html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment