125_TheNameOfEvilPart1 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 18.01.2009, 13:52   #1
Пользователь

Автор темы (Топик Стартер)

Вот такой вот ещё квест...Не знаю, что с ним...Но при запуске GS он не запускается, выдаёт вот такую ошибку:

Traceback (innermost last):
File "__init__.py", line 126, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2


Вот код квеста:

Код:
import sys
from net.sf.l2j import Config
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 = "q125_TheNameOfEvilPart1"

#NPCs
MUSHIKA = 32114
KARAKAWEI = 32117
STATUE = 32119
STATUEE = 32120
STATUEEE = 32121

#MOBs
ORNITHOMIMUS = range(22200,22202)+[22219,22224]
DEINONYCHUS = range(22203,22205)+[22220,22225]

#Items
DROP_CHANCE = 100
ORNITHOMIMUS_CLAW = 8779
DEINONYCHUS_BONE = 8780
EPITAPH = 8781

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

 def onEvent (self,event,st) :
    htmltext = event
    if event == "problema.htm" :
       st.setState(STARTED)
       st.playSound("ItemSound.quest_accept")
       st.set("cond","1")
    elif event == "ok.htm" :
       st.set("cond","2")
    elif event == "materialy.htm" :
       st.set("cond","3")
    elif event == "materdal.htm" :
       st.set("cond","5")
       st.takeItems(ORNITHOMIMUS_CLAW,2)
       st.takeItems(DEINONYCHUS_BONE,2)
    elif event == "bolezn.htm" :
       st.set("cond","6")
    elif event == "boleznn.htm" :
       st.set("cond","7")
    elif event == "otstatuee.htm" :
       st.giveItems(EPITAPH,1)
       st.set("cond","8")    
    elif event == "proklatie.htm" :
       st.playSound("ItemSound.quest_finish")
       st.takeItems(EPITAPH,1)
       st.unset("cond")
       st.setState(COMPLETED)   
    return htmltext

 def onTalk (self,npc,player):
    st = player.getQuestState(qn)
    htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>" 
    if not st: return htmltext
    npcId = npc.getNpcId()
    id = st.getState()
    cond = st.getInt("cond")
    if npcId == MUSHIKA :
       if id == CREATED :
          st2 = player.getQuestState("q124_MeetingTheElroki")
          if st2 :
             if st2.getState().getName() == 'Completed' :
                if player.getLevel() >= 76 :
                   htmltext = "privetstvie.htm"
                else :
                   htmltext = "lvl.htm"
                   st.exitQuest(1)
          else :
             htmltext = "no.htm"
             st.exitQuest(1)
       elif cond >= 2 and cond < 8:
          htmltext = "idikkarakawei.htm"
       elif cond == 8:
          htmltext = "vernulsa.htm"
    elif npcId == KARAKAWEI :
       if cond == 2:
          htmltext = "privkarakawei.htm"
       elif cond == 3:
          htmltext = "materialy.htm"
       elif cond == 4:
          htmltext = "materprines.htm"
    elif npcId == STATUE :
       if cond == 5:
          htmltext = "statue.htm"
    elif npcId == STATUEE :
       if cond == 6:
          htmltext = "statuee.htm"
    elif npcId == STATUEEE :
       if cond == 7:
          htmltext = "statueee.htm"
    return htmltext

 def onKill (self, npc, player,isPet):
    st = player.getQuestState(qn)
    if not st : return
    cond = st.getInt("cond")
    npcId = npc.getNpcId()
    if cond == 3:
       chance = DROP_CHANCE*Config.RATE_DROP_QUEST
       random = st.getRandom(100)
       ornyclaw = st.getQuestItemsCount(ORNITHOMIMUS_CLAW)
       deinobone = st.getQuestItemsCount(DEINONYCHUS_BONE)
       if ornyclaw == deinobone == 2:
          st.playSound("ItemSound.quest_middle")
          st.set("cond","4")
       elif npcId in ORNITHOMIMUS :
          if ornyclaw < 2:
             if random <= chance:
                st.giveItems(ORNITHOMIMUS_CLAW,1)
                st.playSound("ItemSound.quest_itemget")
       elif npcId in DEINONYCHUS :
          if deinobone < 2:
             if random <= chance:
                st.giveItems(DEINONYCHUS_BONE,1)
                st.playSound("ItemSound.quest_itemget")
    return

QUEST = Quest(125,qn,"The Name Of Evil - 1")
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(MUSHIKA)
QUEST.addTalkId(MUSHIKA)
QUEST.addTalkId(KARAKAWEI)
QUEST.addTalkId(STATUE)
QUEST.addTalkId(STATUEE)
QUEST.addTalkId(STATUEEE)

   
for npcId in ORNITHOMIMUS:
   QUEST.addKillId(npcId)
   
for npcId in DEINONYCHUS:
   QUEST.addKillId(npcId)
Вроде проверял, всё нормально...Даже домыслов нету, что атм такое в этой стрчоке "CREATED = State('Start', QUEST)"

Цитата:
Сообщение от AID Посмотреть сообщение
Было б интересно и сборку узнать Вашу.
Сборка la2base

Последний раз редактировалось DarkLoki; 23.01.2009 в 16:59.
Shaigy вне форума Ответить с цитированием
Непрочитано 20.01.2009, 10:42   #2
Пользователь

По умолчанию Ответ: 125_TheNameOfEvilPart1

Было б интересно и сборку узнать Вашу.
AID вне форума Ответить с цитированием
Непрочитано 22.01.2009, 16:09   #3
Пользователь

По умолчанию Ответ: 125_TheNameOfEvilPart1

Удали строки
Код:
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
так как они ненужны.
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 23.01.2009, 07:02   #4
Пользователь

Автор темы (Топик Стартер) Ответ: 125_TheNameOfEvilPart1

Цитата:
Сообщение от Aquanox Посмотреть сообщение
Удали строки
Код:
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
так как они ненужны.
Это сделать сам уже догадался...Не грузится также...
__________________
Бесплатно сделаю GmShop для вашего сервера Interlude~~~589494404Gm-Shop
Shaigy вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 18:32. Часовой пояс GMT +3.

Вверх