Skip to content
Snippets Groups Projects
Commit 18f29b15 authored by Zoey76's avatar Zoey76
Browse files

BETA: Quests in Java:

	* Sacrifice to the Sea (154)
		Patch by: Pandragon
		Reviewed by: jurchiks, Zoey76
	* 1000 years, the End of Lamentation (344)
		Patch by: Pandragon
		Reviewed by: xban1x, janiko, jurchiks, Zoey76
	* Go Get the Calculator
		Patch by: Pandragon
		Reviewed by: xban1x, jurchiks, Zoey76
	* Bring Out the Flavor of Ingredients! (380)
		Patch by: Pandragon
		Reviewed by: Zoey76
	* Let's Become a Royal Member! (381)
		Patch by: Pandragon
		Reviewed by: janiko, jurchiks, Zoey76
	* Kail's Magic Coin (382)
		Patch by: Sdw
		Reviewed by: St3eT, jurchiks, xban1x, Zoey76
	* Yoke of the Past (385)
		Patch by: Pandragon
		Reviewed by: Zoey76
	* Little Wing (420)
		Patch by: Pandragon
		Reviewed by: Zoey76
	* Little Wing's Big Adventure (421)
		Patch by: Pandragon
		Reviewed by: jurchiks, xban1x, Zoey76
	* Daimon the White-Eyed - Part 1 (603)
		Patch by: Pandragon
		Reviewed by: Zoey76
	* The Finest Ingredients - Part 2 (625)
		Patch by: Janiko
		Reviewed by: xban1x, jurchiks, Zoey76

Thank you ^^
parent 89c3cde8
No related branches found
No related tags found
No related merge requests found
Showing
with 12 additions and 394 deletions
...@@ -349,7 +349,7 @@ quests/Q00148_PathtoBecominganExaltedMercenary/Q00148_PathtoBecominganExaltedMer ...@@ -349,7 +349,7 @@ quests/Q00148_PathtoBecominganExaltedMercenary/Q00148_PathtoBecominganExaltedMer
quests/Q00151_CureForFever/Q00151_CureForFever.java quests/Q00151_CureForFever/Q00151_CureForFever.java
quests/Q00152_ShardsOfGolem/Q00152_ShardsOfGolem.java quests/Q00152_ShardsOfGolem/Q00152_ShardsOfGolem.java
quests/Q00153_DeliverGoods/Q00153_DeliverGoods.java quests/Q00153_DeliverGoods/Q00153_DeliverGoods.java
quests/154_SacrificeToSea/__init__.py quests/Q00154_SacrificeToTheSea/Q00154_SacrificeToTheSea.java
quests/Q00155_FindSirWindawood/Q00155_FindSirWindawood.java quests/Q00155_FindSirWindawood/Q00155_FindSirWindawood.java
quests/Q00156_MillenniumLove/Q00156_MillenniumLove.java quests/Q00156_MillenniumLove/Q00156_MillenniumLove.java
quests/Q00157_RecoverSmuggledGoods/Q00157_RecoverSmuggledGoods.java quests/Q00157_RecoverSmuggledGoods/Q00157_RecoverSmuggledGoods.java
...@@ -503,9 +503,9 @@ quests/Q00338_AlligatorHunter/Q00338_AlligatorHunter.java ...@@ -503,9 +503,9 @@ quests/Q00338_AlligatorHunter/Q00338_AlligatorHunter.java
quests/340_SubjugationOfLizardmen/__init__.py quests/340_SubjugationOfLizardmen/__init__.py
quests/Q00341_HuntingForWildBeasts/Q00341_HuntingForWildBeasts.java quests/Q00341_HuntingForWildBeasts/Q00341_HuntingForWildBeasts.java
quests/343_UnderTheShadowOfTheIvoryTower/__init__.py quests/343_UnderTheShadowOfTheIvoryTower/__init__.py
quests/344_1000YearsEndofLamentation/__init__.py quests/Q00344_1000YearsTheEndOfLamentation/Q00344_1000YearsTheEndOfLamentation.java
quests/345_MethodToRaiseTheDead/__init__.py quests/345_MethodToRaiseTheDead/__init__.py
quests/347_GoGetTheCalculator/__init__.py quests/Q00347_GoGetTheCalculator/Q00347_GoGetTheCalculator.java
quests/348_ArrogantSearch/__init__.py quests/348_ArrogantSearch/__init__.py
quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
quests/351_BlackSwan/__init__.py quests/351_BlackSwan/__init__.py
...@@ -533,12 +533,12 @@ quests/Q00376_ExplorationOfTheGiantsCavePart1/Q00376_ExplorationOfTheGiantsCaveP ...@@ -533,12 +533,12 @@ quests/Q00376_ExplorationOfTheGiantsCavePart1/Q00376_ExplorationOfTheGiantsCaveP
quests/Q00377_ExplorationOfTheGiantsCavePart2/Q00377_ExplorationOfTheGiantsCavePart2.java quests/Q00377_ExplorationOfTheGiantsCavePart2/Q00377_ExplorationOfTheGiantsCavePart2.java
quests/378_MagnificentFeast/__init__.py quests/378_MagnificentFeast/__init__.py
quests/379_FantasyWine/__init__.py quests/379_FantasyWine/__init__.py
quests/380_BringOutTheFlavorOfIngredients/__init__.py quests/Q00380_BringOutTheFlavorOfIngredients/Q00380_BringOutTheFlavorOfIngredients.java
quests/381_LetsBecomeARoyalMember/__init__.py quests/Q00381_LetsBecomeARoyalMember/Q00381_LetsBecomeARoyalMember.java
quests/382_KailsMagicCoin/__init__.py quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java
quests/383_SearchingForTreasure/__init__.py quests/383_SearchingForTreasure/__init__.py
quests/384_WarehouseKeepersPastime/__init__.py quests/384_WarehouseKeepersPastime/__init__.py
quests/385_YokeofthePast/__init__.py quests/Q00385_YokeOfThePast/Q00385_YokeOfThePast.java
quests/386_StolenDignity/__init__.py quests/386_StolenDignity/__init__.py
quests/Q00401_PathToWarrior/Q00401_PathToWarrior.java quests/Q00401_PathToWarrior/Q00401_PathToWarrior.java
quests/402_PathToKnight/__init__.py quests/402_PathToKnight/__init__.py
...@@ -559,8 +559,8 @@ quests/Q00416_PathOfTheOrcShaman/Q00416_PathOfTheOrcShaman.java ...@@ -559,8 +559,8 @@ quests/Q00416_PathOfTheOrcShaman/Q00416_PathOfTheOrcShaman.java
quests/417_PathToScavenger/__init__.py quests/417_PathToScavenger/__init__.py
quests/418_PathToArtisan/__init__.py quests/418_PathToArtisan/__init__.py
quests/419_GetAPet/__init__.py quests/419_GetAPet/__init__.py
quests/420_LittleWings/__init__.py quests/Q00420_LittleWing/Q00420_LittleWing.java
quests/421_LittleWingAdventures/__init__.py quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
quests/422_RepentYourSins/__init__.py quests/422_RepentYourSins/__init__.py
quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java
quests/426_FishingShot/__init__.py quests/426_FishingShot/__init__.py
...@@ -589,7 +589,7 @@ quests/Q00552_OlympiadVeteran/Q00552_OlympiadVeteran.java ...@@ -589,7 +589,7 @@ quests/Q00552_OlympiadVeteran/Q00552_OlympiadVeteran.java
quests/Q00553_OlympiadUndefeated/Q00553_OlympiadUndefeated.java quests/Q00553_OlympiadUndefeated/Q00553_OlympiadUndefeated.java
quests/Q00601_WatchingEyes/Q00601_WatchingEyes.java quests/Q00601_WatchingEyes/Q00601_WatchingEyes.java
quests/Q00602_ShadowOfLight/Q00602_ShadowOfLight.java quests/Q00602_ShadowOfLight/Q00602_ShadowOfLight.java
quests/603_DaimontheWhiteEyedPart1/__init__.py quests/Q00603_DaimonTheWhiteEyedPart1/Q00603_DaimonTheWhiteEyedPart1.java
quests/604_DaimontheWhiteEyedPart2/__init__.py quests/604_DaimontheWhiteEyedPart2/__init__.py
quests/Q00605_AllianceWithKetraOrcs/Q00605_AllianceWithKetraOrcs.java quests/Q00605_AllianceWithKetraOrcs/Q00605_AllianceWithKetraOrcs.java
quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java
...@@ -611,7 +611,7 @@ quests/Q00621_EggDelivery/Q00621_EggDelivery.java ...@@ -611,7 +611,7 @@ quests/Q00621_EggDelivery/Q00621_EggDelivery.java
quests/Q00622_SpecialtyLiquorDelivery/Q00622_SpecialtyLiquorDelivery.java quests/Q00622_SpecialtyLiquorDelivery/Q00622_SpecialtyLiquorDelivery.java
quests/Q00623_TheFinestFood/Q00623_TheFinestFood.java quests/Q00623_TheFinestFood/Q00623_TheFinestFood.java
quests/Q00624_TheFinestIngredientsPart1/Q00624_TheFinestIngredientsPart1.java quests/Q00624_TheFinestIngredientsPart1/Q00624_TheFinestIngredientsPart1.java
quests/625_TheFinestIngredientsPart2/__init__.py quests/Q00625_TheFinestIngredientsPart2/Q00625_TheFinestIngredientsPart2.java
quests/Q00626_ADarkTwilight/Q00626_ADarkTwilight.java quests/Q00626_ADarkTwilight/Q00626_ADarkTwilight.java
quests/Q00627_HeartInSearchOfPower/Q00627_HeartInSearchOfPower.java quests/Q00627_HeartInSearchOfPower/Q00627_HeartInSearchOfPower.java
quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java
...@@ -641,7 +641,7 @@ quests/Q00653_WildMaiden/Q00653_WildMaiden.java ...@@ -641,7 +641,7 @@ quests/Q00653_WildMaiden/Q00653_WildMaiden.java
quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java
quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java
quests/660_AidingtheFloranVillage/__init__.py quests/660_AidingtheFloranVillage/__init__.py
quests/661_TheHarvestGroundsSafe/__init__.py quests/Q00661_MakingTheHarvestGroundsSafe/Q00661_MakingTheHarvestGroundsSafe.java
quests/Q00662_AGameOfCards/Q00662_AGameOfCards.java quests/Q00662_AGameOfCards/Q00662_AGameOfCards.java
quests/663_SeductiveWhispers/__init__.py quests/663_SeductiveWhispers/__init__.py
quests/Q00688_DefeatTheElrokianRaiders/Q00688_DefeatTheElrokianRaiders.java quests/Q00688_DefeatTheElrokianRaiders/Q00688_DefeatTheElrokianRaiders.java
......
<html><body>Cristel:<br>
Ah, you've been sent by Rockswell. Such fine, soft fur. But this is not enough for me to spin into yarn. I think ten of these furs would be enough... please gather a few more.
</body></html>
\ No newline at end of file
<html><body>Cristel:<br>
Oh my ... What a beautiful doll! Did Rolfe make it? What a talented person he is. Is that a gift for someone?
</body></html>
\ No newline at end of file
<html><body>Warehouse Keeper Rolfe:<br>
Some time ago Rockswell asked me to craft a doll in the shape of a maiden. He must be giving it as a gift to his granddaughter or something. But I can't make the hair yet, as I don't have any yarn. Rockswell said that he would find me some yarn spun from the fur of the keltir ...
</body></html>
\ No newline at end of file
<html><body>Lighthouse Keeper Rockswell:<br>
So Cristel has spun the yarn for me. I am always grateful to her. Give this yarn to<font color="LEVEL"> Rolfe</font>. You can find Rolfe at the<font color="LEVEL"> warehouse</font>.
</body></html>
\ No newline at end of file
<html><body>Lighthouse Keeper Rockswell:<br>
So you've gathered ten keltir furs. Take them to Cristel. You can find her at the well in front of the warehouse. She will spin yarn from the keltir fur.<br>
Take the keltir fur yarn to Rolfe. You can find Rolfe at the warehouse.
</body></html>
\ No newline at end of file
# Made by Mr. Have fun! Version 0.2
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 = "154_SacrificeToSea"
FOX_FUR_ID = 1032
FOX_FUR_YARN_ID = 1033
MAIDEN_DOLL_ID = 1034
EARING_ID = 113
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [FOX_FUR_ID, FOX_FUR_YARN_ID, MAIDEN_DOLL_ID]
def onAdvEvent (self,event,npc, player) :
htmltext = event
st = player.getQuestState(qn)
if not st : return
if event == "1" :
st.set("id","0")
htmltext = "30312-04.htm"
st.set("cond","1")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
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 == 30312 and st.getInt("cond")==0 and st.getInt("onlyone")==0 :
if player.getLevel() >= 2 :
htmltext = "30312-03.htm"
return htmltext
else:
htmltext = "30312-02.htm"
st.exitQuest(1)
elif npcId == 30312 and st.getInt("cond")==0 and st.getInt("onlyone")==1 :
htmltext = Quest.getAlreadyCompletedMsg(player)
if id == State.STARTED:
if npcId == 30312 and st.getInt("cond")>=1 and (st.getQuestItemsCount(FOX_FUR_YARN_ID)==0 and st.getQuestItemsCount(MAIDEN_DOLL_ID)==0) and st.getQuestItemsCount(FOX_FUR_ID)<10 :
htmltext = "30312-05.htm"
elif npcId == 30312 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_ID)>=10 :
htmltext = "30312-08.htm"
elif npcId == 30051 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_ID)<10 and st.getQuestItemsCount(FOX_FUR_ID)>0 :
htmltext = "30051-01.htm"
elif npcId == 30051 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_ID)>=10 and st.getQuestItemsCount(FOX_FUR_YARN_ID)==0 and st.getQuestItemsCount(MAIDEN_DOLL_ID)==0 and st.getQuestItemsCount(MAIDEN_DOLL_ID)<10 :
htmltext = "30051-02.htm"
st.giveItems(FOX_FUR_YARN_ID,1)
st.takeItems(FOX_FUR_ID,st.getQuestItemsCount(FOX_FUR_ID))
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
elif npcId == 30051 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_YARN_ID)>=1 :
htmltext = "30051-03.htm"
elif npcId == 30051 and st.getInt("cond")>=1 and st.getQuestItemsCount(MAIDEN_DOLL_ID)==1 :
htmltext = "30051-04.htm"
elif npcId == 30312 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_YARN_ID)>=1 :
htmltext = "30312-06.htm"
elif npcId == 30055 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_YARN_ID)>=1 :
htmltext = "30055-01.htm"
st.giveItems(MAIDEN_DOLL_ID,1)
st.takeItems(FOX_FUR_YARN_ID,st.getQuestItemsCount(FOX_FUR_YARN_ID))
st.set("cond","4")
st.playSound("ItemSound.quest_middle")
elif npcId == 30055 and st.getInt("cond")>=1 and st.getQuestItemsCount(MAIDEN_DOLL_ID)>=1 :
htmltext = "30055-02.htm"
elif npcId == 30055 and st.getInt("cond")>=1 and st.getQuestItemsCount(FOX_FUR_YARN_ID)==0 and st.getQuestItemsCount(MAIDEN_DOLL_ID)==0 :
htmltext = "30055-03.htm"
elif npcId == 30312 and st.getInt("cond")>=1 and st.getQuestItemsCount(MAIDEN_DOLL_ID)>=1 and st.getInt("onlyone")==0 :
if st.getInt("id") != 154 :
st.set("id","154")
htmltext = "30312-07.htm"
st.giveItems(EARING_ID,1)
st.takeItems(MAIDEN_DOLL_ID,-1)
st.addExpAndSp(1000,0)
st.set("cond","0")
st.exitQuest(False)
st.playSound("ItemSound.quest_finish")
st.set("onlyone","1")
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 == 20481 :
st.set("id","0")
if st.getInt("cond") >= 1 and st.getQuestItemsCount(FOX_FUR_ID)<10 and st.getQuestItemsCount(FOX_FUR_YARN_ID) == 0 :
if self.getRandom(10)<4 :
st.giveItems(FOX_FUR_ID,1)
if st.getQuestItemsCount(FOX_FUR_ID) == 10 :
st.playSound("ItemSound.quest_middle")
st.set("cond","2")
else:
st.playSound("ItemSound.quest_itemget")
elif npcId == 20545 :
st.set("id","0")
if st.getInt("cond") >= 1 and st.getQuestItemsCount(FOX_FUR_ID)<10 and st.getQuestItemsCount(FOX_FUR_YARN_ID) == 0 :
if self.getRandom(10)<4 :
st.giveItems(FOX_FUR_ID,1)
if st.getQuestItemsCount(FOX_FUR_ID) == 10 :
st.playSound("ItemSound.quest_middle")
st.set("cond","2")
else:
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(154,qn,"Sacrifice To Sea")
QUEST.addStartNpc(30312)
QUEST.addTalkId(30312)
QUEST.addTalkId(30051)
QUEST.addTalkId(30055)
QUEST.addKillId(20481)
QUEST.addKillId(20545)
\ No newline at end of file
<html><body>Antharas Watchman Gilmore:<br>
Alas, their souls have been lost to the beast. Now they wander the valley, preying on innocent passersby. They have come to be known as cave servants.<br>
<a action="bypass -h Quest 344_1000YearsEndofLamentation 30754-04.htm">"Tell me more, Gilmore."</a></body></html>
\ No newline at end of file
<html><body>Antharas Watchman Gilmore:<br>
Surely you have heard of the untold numbers that have died trying to slay Antharas. The fortunate among them were called back to the bosom of Shilen. The unfortunate ones are now the cave servants. I couldn't begin to tell you how many these are now in the valley. You must simply kill as many as you can. These are several types of cave servants, among them<font color="LEVEL"> Cave Servant Archers, Cave Servant Warriors, and Cave Servant Captains.</font> You must kill them all. If they leave any relics behind, please bring them to me. You shall be well-rewarded.</body></html>
\ No newline at end of file
<html><body>Antharas Watchman Gilmore:<br>
Were they surprised to see a relic from a 1,000-year-old ancestor? Good work, my friend! Please accept this reward along with the compensation for having to travel so far.<br>
The brave soldiers who have finally obtained peace must be very grateful to you... But there are still many here in the valley who live in eternal torment. Will you continue to give them rest?<br>
<a action="bypass -h Quest 344_1000YearsEndofLamentation 30754-07.htm">"I will continue the work."</a><br>
<a action="bypass -h Quest 344_1000YearsEndofLamentation 30754-08.htm">"I quit."</a>
</body></html>
\ No newline at end of file
# Made by KilKenny & DrLecter
import sys
from com.l2jserver import Config
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 = "344_1000YearsEndofLamentation"
#Rewards
ADENA = 57
#Quest Items
ARTICLES_DEAD_HEROES,OLD_KEY,OLD_HILT,OLD_TOTEM,CRUCIFIX = range(4269,4274)
#Chances
CHANCE = 36
SPECIAL = int(1+(1000/Config.RATE_QUEST_REWARD))
#NPCs
GILMORE = 30754
RODEMAI = 30756
ORVEN = 30857
KAIEN = 30623
GARVARENTZ = 30704
def rewards(st,npcId):
state=False
chance = st.getQuest().getRandom(100)
if npcId == ORVEN and st.getQuestItemsCount(CRUCIFIX) :
st.set("mission","1")
st.takeItems(CRUCIFIX,-1)
state=True
if chance < 50 :
st.giveItems(1875,19)
elif chance < 70 :
st.giveItems(952,5)
else :
st.giveItems(2437,1)
elif npcId == GARVARENTZ and st.getQuestItemsCount(OLD_TOTEM) :
st.set("mission","2")
st.takeItems(OLD_TOTEM,-1)
state=True
if chance < 45 :
st.giveItems(1882,70)
elif chance < 95 :
st.giveItems(1881,50)
else :
st.giveItems(191,1)
elif npcId == KAIEN and st.getQuestItemsCount(OLD_HILT) :
st.set("mission","3")
st.takeItems(OLD_HILT,-1)
state=True
if chance < 50 :
st.giveItems(1874,25)
elif chance < 75 :
st.giveItems(1887,10)
elif chance < 99 :
st.giveItems(951,1)
else :
st.giveItems(133,1)
elif npcId == RODEMAI and st.getQuestItemsCount(OLD_KEY) :
st.set("mission","4")
st.takeItems(OLD_KEY,-1)
state=True
if chance < 40 :
st.giveItems(1879,55)
elif chance < 90 :
st.giveItems(951,1)
else :
st.giveItems(885,1)
return state
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = range(4269,4274)
def onEvent (self,event,st) :
htmltext = event
amount = st.getQuestItemsCount(ARTICLES_DEAD_HEROES)
cond = st.getInt("cond")
level = st.getPlayer().getLevel()
if event == "30754-04.htm" :
if level>=48 and cond == 0 :
st.setState(State.STARTED)
st.set("cond","1")
st.playSound("ItemSound.quest_accept")
else :
htmltext = Quest.getNoQuestMsg(player)
st.exitQuest(1)
elif event == "30754-08.htm" :
st.exitQuest(1)
st.playSound("ItemSound.quest_finish")
elif event == "30754-06.htm" and cond == 1 :
if not amount :
htmltext = "30754-06a.htm"
else:
st.giveItems(ADENA,amount*60)
st.takeItems(ARTICLES_DEAD_HEROES,-1)
random = self.getRandom(1000)
if random < 10 :
htmltext = "30754-12.htm"
st.giveItems(OLD_KEY,1)
st.set("cond","2")
elif random < 20 :
htmltext = "30754-13.htm"
st.giveItems(OLD_HILT,1)
st.set("cond","2")
elif random < 30 :
htmltext = "30754-14.htm"
st.giveItems(OLD_TOTEM,1)
st.set("cond","2")
elif random < 40 :
htmltext = "30754-15.htm"
st.giveItems(CRUCIFIX,1)
st.set("cond","2")
else :
htmltext = "30754-16.htm"
st.set("cond","1")
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 != GILMORE and id != State.STARTED : return htmltext
level = player.getLevel()
cond = st.getInt("cond")
amount = st.getQuestItemsCount(ARTICLES_DEAD_HEROES)
if id == State.CREATED :
if level>=48 :
htmltext = "30754-02.htm"
else :
htmltext = "30754-01.htm"
st.exitQuest(1)
elif npcId == GILMORE and cond==1 :
if amount :
htmltext = "30754-05.htm"
else :
htmltext = "30754-04.htm"
elif cond==2 :
if npcId == GILMORE :
htmltext="30754-15.htm"
elif rewards(st,npcId) :
htmltext=str(npcId)+"-01.htm"
st.playSound("ItemSound.quest_middle")
st.set("cond","1")
st.unset("mission")
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()
chance = (CHANCE+(npcId-20234)*2)*Config.RATE_QUEST_DROP
bonus = int(divmod(chance,100)[0])
if st.getInt("cond") == 1 and self.getRandom(100)<chance :
st.giveItems(ARTICLES_DEAD_HEROES,1+bonus)
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(344,qn,"1000 Years, the End of Lamentation")
QUEST.addStartNpc(GILMORE)
QUEST.addTalkId(GILMORE)
QUEST.addTalkId(RODEMAI)
QUEST.addTalkId(ORVEN)
QUEST.addTalkId(GARVARENTZ)
QUEST.addTalkId(KAIEN)
for mob in range(20236,20241):
QUEST.addKillId(mob)
\ No newline at end of file
<html><body>Blacksmith Brunon:<br>
Over the long years of trading, the dwarves have created a tool to help traders with their calculations. At first it was a very simple device, but over time they were able to make them better and capable of more complex computations. I find this very useful and I always wish to get the latest model of this<font color="LEVEL"> calculator</font>. Recently a new one was created. I heard it has been brought to town but I have not seen it yet. I do not know where to look for it, but I am sure the<font color="LEVEL"> Trader Guilds</font> brought it into town.<br>
As you probably already know, there are two trader guilds in this village: the<font color="LEVEL"> Silver Scale Guild</font> and the<font color="LEVEL"> Golden Wheel Guild</font>.<br>
I do not have the time to go and search for it. Do you think you can check the leaders and people from these guilds to find me the<font color="LEVEL"> newest model calculator</font>? I will, of course, pay you for your efforts.<br>
<a action="bypass -h Quest 347_GoGetTheCalculator 1">Say you will do this task.</a>
</body></html>
\ No newline at end of file
<html><body>Blacksmith Brunon:<br>
Great! Alright then, start with the<font color="LEVEL"> Trader Guilds</font>. Surely they will have information about the calculator. Like I said, there are two trader guilds in this village: the<font color="LEVEL"> Silver Scale Guild</font> and the<font color="LEVEL"> Golden Wheel Guild</font>.
</body></html>
\ No newline at end of file
<html><body>Blacksmith Brunon:<br>
Ah, the new model calculator! Good job! You shall be rewarded for this! Give me a moment while I check it out!<br>
Is this how this works?<br>
.<br>
.<br>
Aaargh! Do you actually think that this is a new mofel?<br>
Well, sorry to tell you this, but this calculator can only handle simple equations. It's of no use to me at all. I suppose, however, you still should be paid for your efforts.<br>
How does 1,000 adena sound? Or, if you prefer, you can have the calculator. It's your choice!<br>
<a action="bypass -h Quest 347_GoGetTheCalculator 30526_1">Take the calculator.</a><br>
<a action="bypass -h Quest 347_GoGetTheCalculator 30526_2">Take the adena.</a>
</body></html>
\ No newline at end of file
<html><body>Blacksmith Brunon:<br>
Sure, it's fine by me, keep the calculator if you want it. Just remember our deal and don't come complaining that I cheated you.
</body></html>
\ No newline at end of file
<html><body>Blacksmith Brunon:<br>
Well, since I'm paying you for it, I will just keep the calculator, even though I don't really need this one. But a deal is a deal...here is the money I promised you for your work.
</body></html>
\ No newline at end of file
<html><body>Blacksmith Silvera:<br>
If you really want me to give you the calculator then bring me 10 crystals from the<font color="LEVEL"> gemstone beasts</font> and I'll give you the calculator. Otherwise, please do not waste my time.
</body></html>
\ No newline at end of file
<html><body>Elder Spiron:<br>
Why would a youngster like you need such advanced technology? Oh, I get it! It's for Brunon! Mark my words, that fool is in over his head! You should be very careful in y our dealings with him...<br>
Well, my friend, we don't have the calculator that you seek, but I do know where it can be found...I will tell you where it is if you will honestly answer thi question:<br>
Which is the best Dwarven trade guild?<br>
<a action="bypass -h Quest 347_GoGetTheCalculator 30532_1">Golden Wheel</a><br>
<a action="bypass -h Quest 347_GoGetTheCalculator 30532_2">Silver Scale</a><br>
<a action="bypass -h Quest 347_GoGetTheCalculator 30532_3">I don't know</a><br>
You do know the name of our guild, don't you? Not that I mean for you to lie to say that we are the best, but...
</body></html>
\ No newline at end of file
<html><body>Golden Wheel's Spiron:<br>
pfff...if<font color="LEVEL"> Silver Scale</font> is a better guild, I guess you don't really need my advice. Just go and ask them!
</body></html>
\ No newline at end of file
<html><body>Golden Wheel's Spiron:<br>
If you do not even know the answer to such a simple question, there is no hope for you. You might as well give up or come back to me when you think you can answer.
</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