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)
Banshee Garnet Posted December 10, 2023 Posted December 10, 2023 https://pastebin.com/qSHmSSGK try this and let me know
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 .....
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
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
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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now