usedy07 Posted November 14, 2023 Posted November 14, 2023 Hello, I organized 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. # 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) Quote
Banshee Garnet Posted December 10, 2023 Posted December 10, 2023 https://pastebin.com/qSHmSSGK try this and let me know Quote
usedy07 Posted December 10, 2023 Author Posted December 10, 2023 20 minutes ago, Banshee Garnet said: https://pastebin.com/qSHmSSGK try this and let me know Thanks for reply. i try it copy paste.i get this error. Error on: C:\Users\Talha\Desktop\Server_enson\game\data\scripts\quests\263_KillAllSylphs1\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('quests/263_KillAllSylphs1/__init__.py', 95, 29, ' htmltext = f"<html><body>You can repeat this quest after {remaining_time} passed!</body></html> and i use quest on npc, npc says '' you either not on a quest ..... Quote
Banshee Garnet Posted December 10, 2023 Posted December 10, 2023 (edited) remove this # Check if the quest can be repeated if not self.can_repeat(st): remaining_time = self.get_time_remaining(st) if remaining_time: htmltext = f"<html><body>You can repeat this quest after {remaining_time} passed!</body></html> Edited December 10, 2023 by Banshee Garnet Quote
usedy07 Posted December 10, 2023 Author Posted December 10, 2023 16 minutes ago, Banshee Garnet said: remove this # Check if the quest can be repeated if not self.can_repeat(st): remaining_time = self.get_time_remaining(st) if remaining_time: htmltext = f"<html><body>You can repeat this quest after {remaining_time} passed!</body></html> i get that. Error on: C:\Users\Talha\Desktop\Server_enson\game\data\scripts\quests\263_KillAllSylphs1\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): File "quests/263_KillAllSylphs1/__init__.py", line 104, in ? NameError: QUEST if u available i want to send teamviewer or anydesk Quote
Banshee Garnet Posted December 10, 2023 Posted December 10, 2023 43 minutes ago, usedy07 said: i get that. Error on: C:\Users\Talha\Desktop\Server_enson\game\data\scripts\quests\263_KillAllSylphs1\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): File "quests/263_KillAllSylphs1/__init__.py", line 104, in ? NameError: QUEST if u available i want to send teamviewer or anydesk of course , add me on discord banshee1019 Quote
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.