[help] Доработка квеста.
7 ответов128 просмотровСейчас просматривают: 1
· 18.04.2009, 14:51
Проблема: есть квест, он не дописан до конца,. надо дописать что бы он в базу писал статус "started" или "complited"
сейчас не пишет и из-за этого на всём сервере у людей пропадают квесты после релога.
Цитата
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
qn = "****_название квеста"
#NPCz
NPC = 30011
#переменные всякие
col = 7260
prise = 1
X_ID=136014
Y_ID=118989
Z_ID=-726
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
htmltext = " "
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
if npcId == NPC :
if st.getQuestItemsCount(col) < prise :
htmltext = "<html> А где же ключик? </html>"
else:
st.takeItems(col,prise)
st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)
htmltext = "Teleported"
return htmltext
QUEST = Quest(****,qn,"Custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
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
qn = "****_название квеста"
#NPCz
NPC = 30011
#переменные всякие
col = 7260
prise = 1
X_ID=136014
Y_ID=118989
Z_ID=-726
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
htmltext = " "
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
if npcId == NPC :
if st.getQuestItemsCount(col) < prise :
htmltext = "<html> А где же ключик? </html>"
else:
st.takeItems(col,prise)
st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)
htmltext = "Teleported"
return htmltext
QUEST = Quest(****,qn,"Custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
0
· 24.04.2009, 19:43
Инетерсно, а какая сборка, но это особо не важно:
в базовской сборке используется такое:
Код
st.setState(State.COMPLETED)
Ну а в других сборках (во фрии и РТ) встречается чаще такое:
Код
st.setState(COMPLETED)
И вписать это после строчке "st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)" с учётом всех отступов в новой строке.
Ну и разумеется сделать проверку на статус, чтобы нельзя было повторно пройти квест (если необходимо канечно).
0
· 27.04.2009, 18:11
нет, проверку не надо. так как квест для прохождения много раз.
сейчас попробую. отпишусь как что
0
· 27.04.2009, 18:28
не получается.
Когда в игре тетепортируюсь благодря квесту открываетя окно СКРИПТ ЕРРОР, но телепортирует.
В базу пишет вроде норм
Значит теперь надоу убрать чтобы не открывалось окно "скрипт еррор"
0
· 29.04.2009, 19:01
Скинь файлик со своим квестом сюда, погляжу, ибо скрипт еррор гдето после телепортации.
После строчки с телепортацией.
0
· 03.05.2009, 09:19
вот весь квест
Цитата
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
qn = "7783_ColTele"
#NPCz
NPC = 30011
#переменные всякие
col = 7260
prise = 1
X_ID=136014
Y_ID=118989
Z_ID=-726
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
htmltext = " "
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
if npcId == NPC :
if st.getQuestItemsCount(col) < prise :
htmltext = "<html> А где же ключик? </html>"
else:
st.takeItems(col,prise)
st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)
htmltext = "Teleported"
return htmltext
QUEST = Quest(7783,qn,"Custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
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
qn = "7783_ColTele"
#NPCz
NPC = 30011
#переменные всякие
col = 7260
prise = 1
X_ID=136014
Y_ID=118989
Z_ID=-726
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
htmltext = " "
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
if npcId == NPC :
if st.getQuestItemsCount(col) < prise :
htmltext = "<html> А где же ключик? </html>"
else:
st.takeItems(col,prise)
st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)
htmltext = "Teleported"
return htmltext
QUEST = Quest(7783,qn,"Custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
0
Войдите или зарегистрируйтесь чтобы ответить


