Skip to content

Custom Quest hel

Featured Replies

Someone good hearted boy for this code?

 

I copied the quest 623_TheFinestFood ... NPC also changed and added to the HTML folder / custom and added a line to the script to turn, but the game handles, and nothing happens, or no message in the log Thanks

 

 

 

 

 

# Tauti Zbrane - v0.1 by disKret & DrLecter

import sys

from com.l2jfrozen import Config

from com.l2jfrozen.gameserver.model.quest import State

from com.l2jfrozen.gameserver.model.quest import QuestState

from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest

 

qn = "1010_TautiZbrane"

 

#NPC

VILEM = 25888

 

#ITEMS

LEAF_OF_FLAVA,BUFFALO_MEAT,ANTELOPE_HORN = range(7199,7202)

 

#MOBS, DROPS, CHANCES & REWARDS

BUFFALO,FLAVA,ANTELOPE = [ 21315,21316,21318 ]

DROPLIST = {BUFFALO:[bUFFALO_MEAT,99],FLAVA:[LEAF_OF_FLAVA,99],ANTELOPE:[ANTELOPE_HORN,99]}

REWARDS = [[7152,25000,0,11],[0,73000,34,100]]

 

#needed count

 

class Quest (JQuest) :

 

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

 

def onEvent (self,event,st) :

  cond = st.getInt("cond")

  htmltext = event

  leaf = st.getQuestItemsCount(LEAF_OF_FLAVA)

  meat = st.getQuestItemsCount(BUFFALO_MEAT)

  horn = st.getQuestItemsCount(ANTELOPE_HORN)

  if event == "25888-03.htm" and cond == 0 :

    if st.getPlayer().getLevel() >= 71 :

        st.set("cond","1")

        st.setState(STARTED)

        st.playSound("ItemSound.quest_accept")

    else :

        htmltext = "25888-02.htm"

        st.exitQuest(1)

  elif event == "25888-07.htm" :

    if cond == 2 and leaf == meat == horn == 100 :

        htmltext = "25888-06.htm"

        st.playSound("ItemSound.quest_finish")

        random = st.getRandom(100)

        i = 0

        while i < len(REWARDS) :

            item,adena,chance,chance2=REWARDS

            if chance<=random<= chance2 :

              break

            i = i+1

        st.giveItems(57,adena)

        if item :

          st.giveItems(item,1)

        else :

          st.addExpAndSp(230000,18250)

        st.takeItems(LEAF_OF_FLAVA,-1)

        st.takeItems(BUFFALO_MEAT,-1)

        st.takeItems(ANTELOPE_HORN,-1)

        st.exitQuest(1)

  return htmltext

 

def onTalk (self,npc,player) :

  htmltext = "<html><body>Bohuzel nesplnujes criteria k vykonu sluzby questu</body></html>"

  st = player.getQuestState(qn)

  if st :

      cond = st.getInt("cond")

      leaf = st.getQuestItemsCount(LEAF_OF_FLAVA)

      meat = st.getQuestItemsCount(BUFFALO_MEAT)

      horn = st.getQuestItemsCount(ANTELOPE_HORN)

      if cond == 0 :

          htmltext = "25888-01.htm"

      elif st.getState() == STARTED :

          if cond == 1 :

              htmltext = "25888-05.htm"

          elif cond == 2 and leaf == meat == horn == 100 :

              htmltext = "25888-04.htm"

  return htmltext

 

def onKill(self,npc,player,isPet):

  # todo: with the current code, a player who has completed up to 2 out of 3

  # item collections may consume the party drop (i.e. become the selected

  # player in the random, but get nothing because it was the wrong mob)

  # this ought to be corrected later...

  partyMember = self.getRandomPartyMember(player,"1")

  if not partyMember: return

  st = partyMember.getQuestState(qn)

  if st :

      if st.getState() == STARTED :

        item,chance = DROPLIST[npc.getNpcId()]

        count = st.getQuestItemsCount(item)

        if st.getInt("cond") == 1 and count < 100 :

            numItems, chance = divmod(chance*Config.RATE_DROP_QUEST,100)

            if st.getRandom(100) < chance :

              numItems += 1

            if count + numItems >= 100 :

              numItems = 100 - count

            if numItems != 0 :

              st.giveItems(item,int(numItems))

              if st.getQuestItemsCount(LEAF_OF_FLAVA) == st.getQuestItemsCount(BUFFALO_MEAT) == st.getQuestItemsCount(ANTELOPE_HORN) == 100 :

                st.set("cond","2")

                st.playSound("ItemSound.quest_middle")

              else :

                st.playSound("ItemSound.quest_itemget")

  return

 

QUEST      = Quest(1010,qn, "custom")

CREATED    = State('Start', QUEST)

STARTED    = State('Started', QUEST)

 

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(VILEM)

QUEST.addTalkId(VILEM)

 

for mob in DROPLIST.keys() :

  QUEST.addKillId(mob)

 

for item in range(7199,7202):

    STARTED.addQuestDrop(VILEM,item,1)

  • 11 months later...
Guest
This topic is now closed to further replies.

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.