Skip to content

[HELP]how i can make a quest

Featured Replies

Hi. I search for Quest make guide but i dont find sth.... I want someone to tell me how i can put a quest in a npc. or a quest make giude Thanks.

You should create Your __init__.py file with Quest . For example this is quest for noblesse Npc :

 

import sys

from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance

from java.util import Iterator

from net.sf.l2j.gameserver.datatables import SkillTable

from net.sf.l2j       import L2DatabaseFactory

from net.sf.l2j.gameserver.model.actor.appearance import PcAppearance

from net.sf.l2j.gameserver.model.quest import State

from net.sf.l2j.gameserver.model.actor.appearance import PcAppearance

from net.sf.l2j.gameserver.model.quest import QuestState

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

 

qn = "8204_NpcNoblesse"

 

NPC=[7202]

GOLDBAR= 3470

NOBLESS_TIARA = 7694

QuestId    = 8204

QuestName  = "NpcNoblesse"

QuestDesc  = "custom"

InitialHtml = "1.htm"

 

print "INFO Loaded: Noblesse Manager"

 

class Quest (JQuest) :

 

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

 

 

def onEvent(self,event,st):

htmltext = event

count=st.getQuestItemsCount(GOLDBAR)

if count < 10  and st.getPlayer().getLevel() < 80 :

htmltext = "Error2.htm"

 

elif st.getPlayer().isNoble() == 1 :

htmltext = "Error1.htm"

 

elif st.getQuestItemsCount(GOLDBAR) < 10 :

                        htmltext = "Error2.htm"

 

elif st.getPlayer().getLevel() < 80 :

htmltext = "Error2.htm"

 

else:

st.getPlayer().setTarget(st.getPlayer())

 

if event == "2":

st.takeItems(GOLDBAR,10)

                                st.getPlayer().setNoble(True)

                                st.giveItems(NOBLESS_TIARA,1)

                                st.playSound("ItemSound.quest_finish")

st.setState(State.COMPLETED)

return "End.htm"

                                st.exitQuest(1)

 

 

if htmltext != event:

st.setState(State.COMPLETED)

st.exitQuest(1)

return htmltext

 

 

def onTalk (self,npc,player):

  st = player.getQuestState(qn)

  htmltext = "<html><head><body>I have nothing to say to you</body></html>"

  st.setState(State.STARTED)

  return InitialHtml

 

QUEST      = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

 

for npcId in NPC:

QUEST.addStartNpc(npcId)

QUEST.addTalkId(npcId)

 

 

Read this example and try to create Your own Quest  ;)

I dont understun You . You want add Your quest to NPC ? in __init__.py You have NPC ID...and paste ther Your NPC id.

well as you say u make the __init__.py

so make an *.html file and write the text which u want to has the npc....

then put it into c:/server/gameserver/data/html/default/

now u must make the sql file...if u dont know how u make just c/p another sql file....

Change the ID change the Template ID and then if u want change the name and titel...

You Must Care YOU MUST EDIT THIS

an sql file say L2Merchant or L2teleporter or somethink like this

if u make Script npcs you must Put L2NPC so at line which it Says L2Merchant,L2Teleporter or something like this you must PUT L2NPC

hope you helped!

yes i mean the npc sql file..

as we know u must have sql with your npc ID and others...

without SQL npc not found u have only the data files!

Reply If You Want something!

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.