Hello, I edited a quest for the interlude server. However, I want to add a timer to this quest so that it will be reset every 24 hours or at a certain time of the day. I could not do this because my Java knowledge is not very sufficient. If anyone can help me with this, I would be very happy.
Note:I created it by editing the existing kill all sphys task.
# Made by Mr. - Version 0.3 by DrLecter
import sys
from l2jorion.game.model.quest import State
from l2jorion.game.model.quest import QuestState
from l2jorion.game.model.quest.jython import QuestJython as JQuest
def onTalk (self,npc,player):
htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
id = st.getState()
if id == CREATED :
st.set("cond","0")
if st.getInt("cond")==0 :
if player.getLevel()<76 :
htmltext = "70737-01.htm"
st.exitQuest(1)
else :
htmltext = "70737-02.htm"
else :
water = st.getQuestItemsCount(ORB_OF_WATER)
fire = st.getQuestItemsCount(ORB_OF_FIRE)
wind = st.getQuestItemsCount(ORB_OF_WIND)
earth = st.getQuestItemsCount(ORB_OF_EARTH)
if water == fire == wind == earth == 0 :
htmltext = "70737-04.htm"
if npcId == 70737 and st.getQuestItemsCount(ORB_OF_WATER) and st.getQuestItemsCount(ORB_OF_FIRE) and st.getQuestItemsCount(ORB_OF_WIND) and st.getQuestItemsCount(ORB_OF_EARTH) :
htmltext = "70737-05.htm"
st.giveItems(STONE_OF_VALOR,1)
st.takeItems(ORB_OF_WATER,-1)
st.takeItems(ORB_OF_FIRE,-1)
st.takeItems(ORB_OF_WIND,-1)
st.takeItems(ORB_OF_EARTH,-1)
return htmltext
def onKill(self,npc,player,isPet):
st = player.getQuestState(qn)
if not st : return
if st.getState() != STARTED : return
item,chance=DROPLIST[npc.getNpcId()]
if st.getRandom(100)>1 :
st.giveItems(item,1)
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(263,qn,"Kill All Sylphs1")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Question
usedy07
Hello, I edited a quest for the interlude server. However, I want to add a timer to this quest so that it will be reset every 24 hours or at a certain time of the day. I could not do this because my Java knowledge is not very sufficient. If anyone can help me with this, I would be very happy.
Note:I created it by editing the existing kill all sphys task.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Made by Mr. - Version 0.3 by DrLecter
import sys
from l2jorion.game.model.quest import State
from l2jorion.game.model.quest import QuestState
from l2jorion.game.model.quest.jython import QuestJython as JQuest
qn = "263_KillAllSylphs1"
ORB_OF_WATER = 9998
ORB_OF_FIRE = 9999
ORB_OF_WIND = 10000
ORB_OF_EARTH = 10001
STONE_OF_VALOR = 10002
DROPLIST={
57000:[ORB_OF_WIND,100],
57001:[ORB_OF_EARTH,100],
57002:[ORB_OF_FIRE,100],
57003:[ORB_OF_WATER,100],
}
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
htmltext = event
if event == "70737-03.htm" :
st.set("cond","1")
st.setState(STARTED)
st.playSound("ItemSound.quest_accept")
elif event == "70737-06.htm" :
st.exitQuest(1)
st.playSound("ItemSound.quest_finish")
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
id = st.getState()
if id == CREATED :
st.set("cond","0")
if st.getInt("cond")==0 :
if player.getLevel()<76 :
htmltext = "70737-01.htm"
st.exitQuest(1)
else :
htmltext = "70737-02.htm"
else :
water = st.getQuestItemsCount(ORB_OF_WATER)
fire = st.getQuestItemsCount(ORB_OF_FIRE)
wind = st.getQuestItemsCount(ORB_OF_WIND)
earth = st.getQuestItemsCount(ORB_OF_EARTH)
if water == fire == wind == earth == 0 :
htmltext = "70737-04.htm"
if npcId == 70737 and st.getQuestItemsCount(ORB_OF_WATER) and st.getQuestItemsCount(ORB_OF_FIRE) and st.getQuestItemsCount(ORB_OF_WIND) and st.getQuestItemsCount(ORB_OF_EARTH) :
htmltext = "70737-05.htm"
st.giveItems(STONE_OF_VALOR,1)
st.takeItems(ORB_OF_WATER,-1)
st.takeItems(ORB_OF_FIRE,-1)
st.takeItems(ORB_OF_WIND,-1)
st.takeItems(ORB_OF_EARTH,-1)
return htmltext
def onKill(self,npc,player,isPet):
st = player.getQuestState(qn)
if not st : return
if st.getState() != STARTED : return
item,chance=DROPLIST[npc.getNpcId()]
if st.getRandom(100)>1 :
st.giveItems(item,1)
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(263,qn,"Kill All Sylphs1")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(70737)
QUEST.addTalkId(70737)
QUEST.addKillId(57000)
QUEST.addKillId(57001)
QUEST.addKillId(57002)
QUEST.addKillId(57003)
STARTED.addQuestDrop(57002,ORB_OF_FIRE,1)
STARTED.addQuestDrop(57003,ORB_OF_WATER,1)
STARTED.addQuestDrop(57000,ORB_OF_WIND,1)
STARTED.addQuestDrop(57001,ORB_OF_EARTH,1)
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.