Jump to content
  • 0

[HELP]how i can make a quest


Question

6 answers to this question

Recommended Posts

  • 0
Posted

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  ;)

  • 0
Posted

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!

  • 0
Posted

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!

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.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...