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.
Vilmis is the biggest scammer in history. He bans his members when they complain about something. I know more than one who's banned him. He updates shit, but he charges you like he's doing something serious.
I did not want to, but I will tell a few things (just because of other members that might understand something wrong):
1. Nothing held as hostage some kinda customer of yours. I think even now could find your donate panel code at my source code. So, stop spreading a lie because of your head progressive diseases.
2. Don't use my old customer's post as counterargument. We all had the worst customers which think they are the righest ones no matter what. He was one of them. He caused a lot of problems to me. Also, he was rude and disrespectful.
3. You're just simply hater. No matter what good I'm gonna say you gonna say in reverse. Smarter people sees the truth.
4. Look, you don't like me, I don't like you, but it's unnecessary to comment all post about my project and write everything worst just because you hate me. 😉
I've seen this many times, to be honest, let's hope that this time it will actually happen.
I would suggest building something that helps develop trust within the community's sales. It could be something similar to FunPay, for example, which ensures secure trades for both the seller and the buyer, along with a rating system for both parties.
I would also recommend doing something about the voting site, which has been paused for I don't know how many years since the Fiverr failure.
Last but not least, I’d suggest creating an open blog or at least publishing weekly articles that can attract more people to the forum or encourage members to return and read them. The topics of these articles could include overviews and opinions on L2 or GTA V servers, PUBG, Fortnite, tech news, coding updates, or even general news that the author finds interesting.
How could you know such an information? 🤔
And yeah I agree on the part about the poor management
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 !
2 answers 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.