Перейти к содержанию
Авторизация  
Макс

Помогите С Квестом

Рекомендуемые сообщения

Вобщем проверял квест на саб-класс. Всё было хорошо, но вот в конце, когда нужно сварить етот самый Mimir's Elixir, я подхожу к урне, а она мне пишет типа что у меня нету нужных вещей для квеста и т.д. Все три нужных ингредиента есть, квесть тоже есть. В чём может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скрипт квеста в студию. в нем ошибка сидит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а ты количество по базе сравнивал? и проверь в конфиге может квест сокращенный стоит)) и еще на некоторых сборках итемы с админки которые не принимает)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Итемы я не брал с админки, я проходил квест полностью. Сборка сервера L2JFrozen.

Вот скрипт:

Скрытый текст
# Mimir's Elixir version 0.1 
# by Fulminus
import sys
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
#Quest info
qn = "235_MimirsElixir"
QUEST_NUMBER,QUEST_NAME,QUEST_DESCRIPTION = 235,"MimirsElixir","Mimir's Elixir"

DROP_RATE = 20

#prerequisites:
STAR_OF_DESTINY = 5011
MINLEVEL = 75

#Quest items
PURE_SILVER = 6320
TRUE_GOLD = 6321
SAGES_STONE = 6322
BLOOD_FIRE = 6318
MIMIRS_ELIXIR = 6319

SCROLL_ENCHANT_WEAPON_A = 729

#Messages
default   = "<html><body>I have nothing to say to you.</body></html>"
#NPCs
LADD,JOAN=30721,30718
#Mobs, cond, Drop
DROPLIST = {
20965: [3,SAGES_STONE],   #Chimera Piece
21090: [6,BLOOD_FIRE]	#Bloody Guardian
}

class Quest (JQuest) :

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

def onEvent (self,event,st) :
if event == "1" :
	st.setState(PROGRESS)
	st.set("cond","1")
	htmltext = "30166-02a.htm"
elif event == "30718_1" :
	st.set("cond","3")
	htmltext = "30718-01a.htm"
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()
cond = st.getInt("cond")
if npcId == LADD :
	if id == CREATED :
		st.set("cond","0")
		if player.getLevel() < MINLEVEL :
			st.exitQuest(1)
			htmltext = "30166-01.htm"	 #not qualified
		elif not st.getQuestItemsCount(STAR_OF_DESTINY) :
			st.exitQuest(1)
			htmltext = "30166-01a.htm"	 #not qualified
		elif st.getInt("cond")==0 :
			htmltext = "30166-02.htm"	# Successful start: Bring me Pure silver from Reagents quest
	elif id == COMPLETED :
		htmltext = "<html><body>You have already completed this quest.</body></html>"
	# was asked to get pure silver but has not done so yet.  Repeat: get pure silver
	elif cond==1 and not st.getQuestItemsCount(PURE_SILVER) :
		htmltext = "30166-03.htm"	# Bring me Pure silver from Reagents quest
	# got the pure silver and came back.  Ask for TrueGold.
	elif cond==1 and st.getQuestItemsCount(PURE_SILVER) :
		st.set("cond","2")
		htmltext = "30166-04.htm"	# Bring me True Gold from Joan
	elif 1<cond<5 :
		htmltext = "30166-05.htm"	# Where is my GOLD?!  Bring to me first.
	# got the true gold...look for Blood fire
	elif cond==5 :
		st.set("cond","6")
		htmltext = "30166-06.htm"	# find Blood Fire from "bloody guardians"
	# still looking for blood fire?
	elif cond==6 :
		htmltext = "30166-07.htm"	# find Blood Fire from "bloody guardians"
	# Ah, you got the blood fire!  Time to mix them up!
	elif cond==7 and st.getQuestItemsCount(PURE_SILVER) and st.getQuestItemsCount(TRUE_GOLD):
		htmltext = "30166-08.htm"	 # what are you standing there for?  Go to the cauldron and mix them...
	# you idiot, how did you lose your quest items?
	elif cond==7 :   
		htmltext = "30166-09.htm"	 # Well...you already know what to do...go get the 3 items...
		st.set("cond","3")		  # start over...yay...
	# cond for this quest is set to 8 from Supplier or Reagents, when you create Mimir's Elixir.
	# Finally, all is done...time to learn how to use the Elixir...
	elif cond==8 :
		htmltext = "30166-10.htm"	 # here's what you do...
		st.takeItems(MIMIRS_ELIXIR,-1)  #remove this line for compatibility with L2JServer revisions prior to 376
		st.giveItems(SCROLL_ENCHANT_WEAPON_A,1)
		st.setState(COMPLETED)
		st.unset("cond")
elif npcId == JOAN and id == PROGRESS:
   # first time talking to Joan: You ask for True Gold, she sends you for Sage's stone
	if cond==2 :
		htmltext = "30718-01.htm"	  # You want True Gold?  Please get the sage's stone.  Kill Chimera!
	# Why are you back alraedy?  You don't have the stone.
	elif cond==3 :
		htmltext = "30718-02.htm"	 # you haven't gotten the sage's stone yet?
	# aha!  Here is the sage's stone!  Cool, now we can make true gold
	elif cond==4 :
		st.takeItems(SAGES_STONE,-1)
		st.giveItems(TRUE_GOLD,1)
		st.set("cond","5")
		htmltext = "30718-03.htm"	 # here you go...take the gold.  Now go back to ladd.
	elif cond>=5 :
		htmltext = "30718-04.htm"	 # Go back to ladd already!
return htmltext

def onKill(self,npc,player,isPet):
 st = player.getQuestState(qn)
 if not st : return 
 if st.getState() != PROGRESS : return 

 npcId = npc.getNpcId()
 drop = st.getRandom(100)
 cond = st.getInt("cond")
 dropcond = DROPLIST[npcId][0]
 if drop < DROP_RATE and cond == dropcond :
	if st.getQuestItemsCount(DROPLIST[npcId][1]) == 0 :
		st.giveItems(DROPLIST[npcId][1],1)
		st.playSound("ItemSound.quest_itemget")
		st.set("cond",str(cond+1))
 return

# Quest class and state definition
QUEST	   = Quest(QUEST_NUMBER, qn, QUEST_DESCRIPTION)

CREATED	 = State('Start',	 QUEST)
PROGRESS	= State('Progress',   QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
# Quest NPC starter initialization
QUEST.addStartNpc(LADD)
# Quest initialization
QUEST.addTalkId(LADD)
QUEST.addTalkId(JOAN)

for i in DROPLIST.keys():
 QUEST.addKillId(i)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё, разобрался. Небыло одного импорта в коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
надо же фрозенам сказать)))

вот этот наверное))) from com.l2jfrozen.gameserver.model.base import Race

Да, он самый))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...