Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
Поиск
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Квесты/[help] Доработка квеста.
Поиск

[help] Доработка квеста.

7 ответов128 просмотровСейчас просматривают: 1
Uphill
Uphill

Пользователь

Участник

Постов: 96

На форуме с: 25.01.2009

Репутация: +16

Рейтинг: 0

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

0
Gradesk
Gradesk

Пользователь

Ветеран

Постов: 639

На форуме с: 09.04.2008

Репутация: +619

Рейтинг: 0

· 24.04.2009, 19:43

Инетерсно, а какая сборка, но это особо не важно:
в базовской сборке используется такое:

Код
st.setState(State.COMPLETED)


Ну а в других сборках (во фрии и РТ) встречается чаще такое:
Код
st.setState(COMPLETED)



И вписать это после строчке "st.getPlayer().teleToLocation(X_ID,Y_ID,Z_ID)" с учётом всех отступов в новой строке.
Ну и разумеется сделать проверку на статус, чтобы нельзя было повторно пройти квест (если необходимо канечно).

0
Uphill
Uphill

Пользователь

Участник

Постов: 96

На форуме с: 25.01.2009

Репутация: +16

Рейтинг: 0

· 27.04.2009, 18:11

нет, проверку не надо. так как квест для прохождения много раз.
сейчас попробую. отпишусь как что

0
Uphill
Uphill

Пользователь

Участник

Постов: 96

На форуме с: 25.01.2009

Репутация: +16

Рейтинг: 0

· 27.04.2009, 18:28

не получается.
Когда в игре тетепортируюсь благодря квесту открываетя окно СКРИПТ ЕРРОР, но телепортирует.
В базу пишет вроде норм

Значит теперь надоу убрать чтобы не открывалось окно "скрипт еррор"

0
Gradesk
Gradesk

Пользователь

Ветеран

Постов: 639

На форуме с: 09.04.2008

Репутация: +619

Рейтинг: 0

· 29.04.2009, 19:01

Скинь файлик со своим квестом сюда, погляжу, ибо скрипт еррор гдето после телепортации.

После строчки с телепортацией.

0
Uphill
Uphill

Пользователь

Участник

Постов: 96

На форуме с: 25.01.2009

Репутация: +16

Рейтинг: 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)

0
Gradesk
Gradesk

Пользователь

Ветеран

Постов: 639

На форуме с: 09.04.2008

Репутация: +619

Рейтинг: 0

· 03.05.2009, 19:30

Я попросил бы выложить именно файл, а то как то не особо хочется ставить табуляцию в ручную.

0
Войдите или зарегистрируйтесь чтобы ответить