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
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
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 !
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.
@HypeH
Ah, the relentless crusader for truth and justice strikes again! Your tireless dedication to vague accusations and baseless claims is truly inspiring. While some of us spend our days debugging code, fixing issues, and releasing stable updates for the benefit of the community, you, my friend, are out here wielding your mighty sword of… well, nothing in particular.
As for your claims about my project, allow me to say this: The proof is in the code. The official files are available for anyone to review, test, and use. If you truly believe you’ve found some grand scandal, then by all means, shine your spotlight on it. Until then, this theater of yours is nothing but a one-man comedy show ...and the reviews aren’t great.
Spoken by the great scammer who claims to help a community while charging several euros for lousy codes with backdoors.
In terms of project updates, I must agree with you. I posted this several days ago, but I will soon make available here several current fixes, including the ones you are charging innocent people a lot of money for. 🤣😂🤣😂😎
I find it ironic that you're thanking someone for leaked files when I've already released stable versions of the project specifically so people like you can have proper access to them, without risking using incomplete or potentially harmful versions.
I've also been very clear why leaked versions shouldn't be used - they miss fixes and improvements that are in the official releases. If you truly care about a good experience, the work I make available (for free, mind you) is already there for everyone to access.
Leaked files like these don't help anyone.
They only hurt the community by spreading outdated or broken code.
But hey, if you're satisfied with that, enjoy it - I guess everyone gets what they deserve.
Question
KarlL2
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
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.