Jump to content

Recommended Posts

Posted

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)

  • 4 weeks later...
Posted
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 .....

Posted (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 by Banshee Garnet
Posted
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

 

Posted
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • That’s just part of buying and selling; if your service didn't appeal to me at the time, there's no reason for me to force myself to buy it. After all, I regularly buy other interfaces and clients from other users mostly Russians using USDT. But *I'm* the child here, even though *you're* the incredibly arrogant one.   The payment method or the amounts were never the problem you were. But life goes on; you’d rather stay caught up in your delusions, thinking you’re the protagonist of some anime. Princess Alice 😂   I have all the interfaces for the 474/506/509/520/542/563/557. and olds too.  Some were created by me, including the ARENA P140 interface, which will soon be released for free. This includes everything you make available. It will no longer be a monopoly held by just a few people.   Including your clients with system. like  
    • NEW: Ryzen 9 9950X VPS now Available! Our most Powerful VPS plans now available with dedicated Zen 5 cores clocked up to 5.7 GHz, DDR5 ECC, blazing NVMe Gen4 storage (~7 GB/s), 10 Gbit/s uplink with up to 50 TB traffic, and premium Anti-DDoS included on every plan. No KYC, crypto payments accepted, deployed in minutes. ⭐ RYZEN 9 9950X VPS: [ 9.99 ] 2vCore | 6GB DDR5 | 30GB NVMe - DEPLOY [ 19.99 ] 4vCore | 12GB DDR5 | 50GB NVMe - DEPLOY [ 39.99 ] 8vCore | 24GB DDR5 | 80GB NVMe - DEPLOY [ 69.99 ] 12vCore | 48GB DDR5 | 120GB NVMe - DEPLOY - 10 Gbit/s Port included in ALL Plans - Premium Anti-DDoS included in ALL Plans - No-KYC signup, crypto payments accepted ✅ Ryzen 9 9950X VPS ( vpslab.cloud )
    • I thiunk RU Federation having issues now with paypal?
    • 👑 [FOR SALE] Lineage 2 Premium UCP – Modern Web Panel with Progression & Reward Systems. Looking for the ultimate edge to make your server boom and boost revenue? Introducing the L2 Premium UCP—the most comprehensive and modern User Control Panel on the market. Developed with a total focus on player experience (UX) and administrative automation. Say goodbye to outdated, buggy panels. Give your server the look and feel of an official game!  
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..