Jump to content

Question

Posted

Hi everyone I've recently embarqued in a new challenge. I'm trying to create a custom hunting quest. I've used Lector's quest (258_BringWolfPelt1) as my model.

So basicly what I'm trying to achieve is people getting rewarded for hunting "x" npc. Here's Lector's original script:

import sys
from l2jorion import Config 
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 = "258_BringWolfPelt1"

WOLF_PELT = 702
REWARDS={429:[1,6],42:[1,19],41:[1,19],462:[1,19],18:[1,20],426:[1,5],29:[1,2],22:[1,2],390:[1,3]}

class Quest (JQuest) :

 def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

 def onEvent (self,event,st) :
    htmltext = event
    if event == "30001-03.htm" :
      st.set("cond","1")
      st.setState(STARTED)
      st.playSound("ItemSound.quest_accept")
    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() >= 3 :
       htmltext = "30001-02.htm"
     else:
       htmltext = "30001-01.htm"
       st.exitQuest(1)
   else :
     if st.getQuestItemsCount(WOLF_PELT) < 40 :
       htmltext = "30001-05.htm"
     else :
       st.takeItems(WOLF_PELT,-1)
       count=0
       while not count :
          for item in REWARDS.keys() :
              qty,chance=REWARDS[item]
              if st.getRandom(100) < chance and count == 0 :
                 st.giveItems(item,st.getRandom(qty)+1)
                 count+=1
       if chance < 7 :
         st.playSound("ItemSound.quest_jackpot")
       htmltext = "30001-06.htm"
       st.exitQuest(1)
       st.playSound("ItemSound.quest_finish")
   return htmltext

 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   count = st.getQuestItemsCount(WOLF_PELT)
   numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100)
   if st.getRandom(100) <chance :
     numItems = numItems + 1
   if count+numItems>=40 :
     numItems = 40 - count
     if numItems != 0 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
   else :
     st.playSound("ItemSound.quest_itemget")
   st.giveItems(WOLF_PELT,int(numItems))
   return

QUEST       = Quest(258,qn,"Bring Wolf Pelt1")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30001)

QUEST.addTalkId(30001)

QUEST.addKillId(20120)
QUEST.addKillId(20442)

STARTED.addQuestDrop(20120,WOLF_PELT,1)

 

and here's my version of the script:

 

import sys
from l2jorion import Config 
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 = "1002_HuntTest"

WOLF_PELT = 702
REWARDS={429:[1,6],42:[1,19],41:[1,19],462:[1,19],18:[1,20],426:[1,5],29:[1,2],22:[1,2],390:[1,3]}

class Quest (JQuest) :

 def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

 def onEvent (self,event,st) :
    htmltext = event
    if event == "30001-03.htm" :
      st.set("cond","1")
      st.setState(STARTED)
      st.playSound("ItemSound.quest_accept")
    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 = "30001-02.htm"
     else:
       htmltext = "30001-01.htm"
       st.exitQuest(1)
   else :
     if st.getQuestItemsCount(WOLF_PELT) < 40 :
       htmltext = "30001-05.htm"
     else :
       st.takeItems(WOLF_PELT,-1)
       count=0
       while not count :
          for item in REWARDS.keys() :
              qty,chance=REWARDS[item]
              if st.getRandom(100) < chance and count == 0 :
                 st.giveItems(item,st.getRandom(qty)+1)
                 count+=1
       if chance < 7 :
         st.playSound("ItemSound.quest_jackpot")
       htmltext = "30001-06.htm"
       st.exitQuest(1)
       st.playSound("ItemSound.quest_finish")
   return htmltext

 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   count = st.getQuestItemsCount(WOLF_PELT)
   numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100)
   if st.getRandom(100) <chance :
     numItems = numItems + 1
   if count+numItems>=40 :
     numItems = 40 - count
     if numItems != 0 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
   else :
     st.playSound("ItemSound.quest_itemget")
   st.giveItems(WOLF_PELT,int(numItems))
   return

QUEST       = Quest(1002,qn,"HuntTest")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(35098)

QUEST.addTalkId(35098)

QUEST.addKillId(20221)

STARTED.addQuestDrop(20221,WOLF_PELT,1)

 

So what I've done is that I changed the new NPC ID and the level requiered to start this quest that's it, and the Monster ID that need to be hunted. Here's the deal the quest do not work I'm getting the infamous "You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements" before you ask, yes the character that i'm trying to start the quest is level 76+, also I'm using L2J Orion datapack changeset 20 created by Vilmis https://www.l2jorion.com/ if I'm asking for help is because I'm fairly new to this. Thank you for trying to help me !

1 answer to this question

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • I dont sell anything and i got scammed kiddo, if you noticed rookie just scammed me and blocked me. so asking this make you immature.
    • @Maxtor @Dragic @Celestine Why you unban this rat, it's will give very negative review if you will try sell something or provide service this very actually should be for @Dragic and his L2Forge sales.
    • Αχ ναι; τοτε γιατι με παρακαλουσες για κωδικες και οτι σου εδινα ελεγες τελεια και wow σαγαπαω? Ε ψευτρακο; Γιατι οτι πηρες λειτουργει οπως το ηθελες ακομη και σε λεπτομερεια που κανας αλλος θα σου ελεγε αντε κ γα*?   Σε τσουξανε οι τιμουλες μου στη τσεπουλα σου; κ βρηκες κανα new chatgpt dev? Φτωχομπινε του κερατα που κανεις παζαρια για 40-50 ευρω κωδικες.   Δεν ασχολουμε αλλο απλα ενημερωνω @Celestineτο παιδακι χρωσταει λεφτα για κωδικα που ελαβε και λειτουργει και το επιβεβαιωσε και με μπλοκαρε κ ολας. Ban η οχι δεν ασχολουμε αλλο. καλη τυχη 
    • den tha asxolithw allo mazi sou randoma,kserei olo to forum ti  eisai
    • [GR] Εισαι μεγαλο σκουπιδι και τσιπης. Ειχα δουλεια, γυρισα σου εφτιαξα οτι ηθελες κ εκατσα μαζι σου μεχρι να δεις κ τη πιο μικρη λεπτομερεια να δουλευει κ οτι αλλαγη ηθελες που θα μπορουσα να σου πω "φερε ενα 20ρικο" οπως κατι αλλοι εδω μεσα στο εκανα. Το χειροτερο ειναι οτι σου ζητησα 60 εδωσες 50 λες κ κανονιζεις εσυ τι θα δωσεις και το ακομη χειροτερο οτι λες οτι θα προχωρησουμε μαζι σε κατι, κανε μου πρωτα αυτο κ πας ιδια μερα κ ανοιγεις τοπικ κ ζητας αλλον dev. Σκουπιδι γεννηθηκες κ σκουπιδι θα πεθανεις. Παλι σε εμενα θα γυρισεις να ξερεις τη δουλεια που σ εκανα δεν θα την κανει κανεις αλλος εδω μεσα ειδικα σε ενα φορουμ με chatgpt devs. Δεν ασχολουμε αλλο μαζι σου, επισης στειλε μου τα 10 Ευρω revolut αλλιως ανοιγω report (μεχρι αυριο) @rookie23 . [/GR]      Have you ever worked with me? Cause just diggin topics from 2.000 + clients i had since 2014 and finding the only one who had bad business does not make you scammer.     Εσυ που εισαι 35 ετων και καθεσαι κ κυνηγας οτι τοπικ εχει το ονομα καρα ποσο happy customer εισαι; Επισης happy? πληρωσε, πηρε οτι ηθελε, δουλευει 100% κ το θεμα ειναι οτι δεν εδωσε ολα τα λεφτα που λεει, αρα ακομη και η ειρωνια σου ειναι εκτος τοπου και χρονου. 
  • 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..