All pastes #11652 Raw Edit

Anonymous

public text v1 · immutable
#11652 ·published 2005-05-13 08:42 UTC
rendered paste body
print "importing quests: WhatWomenWant"

import sys
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j.gameserver.model import Race

LETTER_FOR_MIRABEL_ID           = 1092
POETRY_BOOK_ID                  = 689
POTION_ID                       = 1073
ADENA_ID                        = 57
LETTER_FOR_HERBIEL_ID           = 1093
LETTER_FOR_ARUJIEN_ID           = 1094
GREENIS_LETTER_FOR_ARUJIEN_ID   = 693
ARUJIEN_ID                      = 7223 
HERBIEL_ID                      = 7150
GREENIS_ID                      = 7157
MIRABEL_ID                      = 7146

def completed(st) :
  st.setState(COMPLETED)
  st.clearQuestDrops()
  st.exitQuest(False)
  return

def st_check(st) :
  if st.getPlayer().getLevel() < 2 :
    st.exitQuest(True)
    return "7223_11.htm"
  return "7223_1.htm"

class Quest (JQuest):

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


  def onEvent (self,event,st):
    id = st.getState()
    if   id == CREATED  :
         if event == "agree":
           st.setState(STARTED)
           st.giveItems(LETTER_FOR_MIRABEL_ID,1)
           return "7223_3.htm"
         return st_check(st)
    elif id == COMPLETED: pass
    elif id == STARTED  :
        if event == "end":
          st.takeItems(LETTER_FOR_HERBIEL_ID,-1)
          st.giveItems(ADENA_ID,450)
          completed(st)
          return "7223_7.htm"
        elif event == "continue":
          st.st.takeItems(LETTER_FOR_ARUJIEN_ID,-1)
          st.giveItems(POETRY_BOOK_ID,1)
          return "7223_8.htm"
    return

  def onTalk (self,npcId,st):
    if npcId == MIRABEL_ID:
      if st.getQuestItemCount(LETTER_FOR_MIRABEL_ID) > 1:
        st.st.takeItems(LETTER_FOR_MIRABEL_ID,-1)
        st.giveItems(LETTER_FOR_ARUJIEN_ID,1)
        return "7146_1.htm"
      return

    if npcId == HERBIEL_ID:
      if st.getQuestitemcount(LETTER_FOR_HERBIEL_ID) > 1:
        st.st.takeItems(LETTER_FOR_HERBIEL_ID,-1)
        st.giveItems(LETTER_FOR_ARUJIEN_ID,1)
        return "7150_1.htm"
      elif itemId != LETTER_FOR_HERBIEL_ID:
        return "7150_2.htm"
      return

    if npcId == ARUJIEN_ID:
      if st.getquestitemcount(LETTER_FOR_MIRABEL_ID) > 1:
        return "7223_5.htm"
      elif st.getquestitemcount(LETTER_FOR_HERBIEL_ID) > 1:
        return "7223_6.htm"
      elif st.getquestitemcount(POETRY_BOOK_ID) > 1:
        return "7223_10.htm"
      elif st.getquestitemcount(GREENIS_LETTER_FOR_ARUJIEN_ID) > 1:
        st.takeItems(GREENIS_LETTER_FOR_ARUJIEN_ID,-1)
        st.giveItems(POTION_ID,5)
        completed(st)
        return "7223_9.htm"
      return

    if npcId == GREENIS_ID:
      if st.getquestitemcount(POETRY_BOOK_ID) > 1:
        st.st.takeItems(POETRY_BOOK_ID,-1)
        st.giveItems(GREENIS_LETTER_FOR_ARUJIEN_ID,1)
        return "7157_1.htm"
      elif itemId == POETRY_BOOK_ID:
        return "7157_2.htm"
      return
    return

QUEST     = Quest(2, "WhatWomenWant", "What Women Want")
CREATED   = State('Start',     QUEST)
STARTED   = State('Started',   QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(ARUJIEN_ID)

STARTED.addTalkId(GREENIS_ID)
STARTED.addTalkId(MIRABEL_ID)
STARTED.addTalkId(HERBIEL_ID)