Jump to content

KarlL2

Members
  • Posts

    4
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

About KarlL2

Profile Information

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

KarlL2's Achievements

Newbie

Newbie (1/16)

0

Reputation

  1. 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. 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 !
  3. Hi, yes indeed it's a very basic request, but I can't get the server running by my own, im super bad at this thing which is why im looking for an "helper" just to get it started then I'm good.
  4. Hi everyone, I'm looking to hire someone to setup a super basic Lineage 2 Interlude server on my PC. Here's what I want: Server Must have Geodata (especialy around castle) Server must have an NPC Buffer AIO with Scheme Options for players Server must be Interlude I would like to be able to create custom quest. Server must have classes changer NPC Server must NOT be on LAN IP (I want other peoples to be able to connect to it) Server must NOT have any custom items or skills Server must NOT have any NPCMonster, I want to keep quest monster and Raidbosses though. If you accept to take this job, I will appreciate to keep contact with you if I need help with futur script, reason is, I do not fully understand how they work yet. Give me quotes for how much you're looking to be paid for this simple job I will take the cheapest one, I'm paying 1/3 in advance and pay you the rest once the job is done. Thank everyone.
×
×
  • Create New...