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

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

Ответ
Опции темы
Непрочитано 31.01.2013, 23:26   #1
Пользователь

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

я добавил новый квест, сборка lucera.
помогите исправить ошибку:
Код:
Error on: /root/server/game/data/scripts/quests/q902_FeatherGathering/__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  File "__init__.py", line 124, in ?
NameError: QUEST
__init__.py :
Код:
import sys
from ru.catssoftware import Config
from ru.catssoftware.tools.random import Rnd
from ru.catssoftware.gameserver.model.quest import State
from ru.catssoftware.gameserver.model.quest import QuestState
from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest

qn = "q902_FeatherGathering"

NPC = 300301
MOBS = [22132,22130,22131,22135]
BOSS = 25450
FEATHER = 2129
FEATHER_COUNT_MIN = 1
FEATHER_COUNT_MAX = 1
FEATHER_NEED = 100
FEATHER_CHANCE = 100
BOSS_ITEM = 2125
WINNER = 7058
WINNER_COUNT_MIN = 1
WINNER_COUNT_MAX = 1
WINNER_ENCHANT = 0


class Quest (JQuest) :
 def __init__(self,id,name,descr) :
   JQuest.__init__(self,id,name,descr)
   def onEvent (self,event,st) :
     htmltext = event
     count = Rnd.get(WINNER_COUNT_MIN, WINNER_COUNT_MAX)
     if event == "accept.htm":
       st.setState(STARTED)
       st.playSound("ItemSound.quest_accept")
       st.set("cond","1")
     elif event == "finish.htm":
       if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
         st.takeItems(FEATHER, -1)
         st.takeItems(BOSS_ITEM, -1)
         st.giveItems(WINNER, count, WINNER_ENCHANT)
         st.set("cond","0")
         st.playSound("ItemSound.quest_finish")
         st.setState(COMPLETED)
     else:
       htmltext = "mobs.htm"
     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()
    idd = st.getState()
    cond = st.getInt("cond")
    if npcId == NPC:
      if idd == State.COMPLETED :
        htmltext = "completed.htm"
      if idd == State.CREATED :
        htmltext = "hello1.htm"
      elif cond == 1:
        if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
          htmltext = "mobs2.htm"
        else:
          htmltext = "mobs.htm"
  return htmltext

  def onKill(self,npc,player,isPet):
    st = player.getQuestState(qn)
    if not st or st.getInt("cond") != 1:
      return
      npcId = npc.getNpcId()
      reward = 0
      limit = 1
      chance = 100
      count = 1
      if npcId in MOBS:
        reward = FEATHER
        limit = FEATHER_NEED
        chance = FEATHER_CHANCE
      count = Rnd.get(FEATHER_COUNT_MIN,FEATHER_COUNT_MAX)
      if npcId == BOSS:
        reward = BOSS_ITEM
        limit = 1
	count = 1
      if reward > 0:
        party = player.getParty()
        if party:
          for member in party.getPartyMembers():
            if not member.isAlikeDead():
              st = member.getQuestState("q902_FeatherGathering")
              if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
                st.giveItems(reward, count)
                st.playSound("ItemSound.quest_itemget")
                if st.getQuestItemsCount(reward) >= limit:
                  st.playSound("ItemSound.quest_middle")
      else:
        if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
          st.giveItems(reward, count)
          st.playSound("ItemSound.quest_itemget")
      return 
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addKillId(BOSS)
QUEST.addKillId(MOBS)
__________________
1megalord1 вне форума Ответить с цитированием
Непрочитано 31.01.2013, 23:29   #2
Live free or die!

По умолчанию Re: Квест

Ищите проблему в 124 строке.
Dеmon вне форума Ответить с цитированием
Непрочитано 31.01.2013, 23:30   #3
Пользователь

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

Цитата:
Сообщение от Dеmon Посмотреть сообщение
Ищите проблему в 124 строке.
в этой строчке QUEST.addStartNpc(NPC)

Код:
NameError: QUEST
__________________
1megalord1 вне форума Ответить с цитированием
Непрочитано 31.01.2013, 23:43   #4
Аватар для ExLite
.

По умолчанию Re: Квест

Код:
....
if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
          st.giveItems(reward, count)
          st.playSound("ItemSound.quest_itemget")
      return 

QUEST = Quest(902,qn,"Feather Gathering")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addKillId(BOSS)
QUEST.addKillId(MOBS)
походу этого не хватает
ExLite вне форума Отправить сообщение для ExLite с помощью ICQ Отправить сообщение для ExLite с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 31.01.2013, 23:52   #5
Пользователь

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

Код:
Error on: /root/server/game/data/scripts/quests/q902_FeatherGathering/__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  File "__init__.py", line 130, in ?
TypeError: addKillId(): 1st arg can't be coerced to int
line 130:
Код:
QUEST.addKillId(MOBS)
__________________
1megalord1 вне форума Ответить с цитированием
Непрочитано 01.02.2013, 00:10   #6
Аватар для ExLite
.

По умолчанию Re: Квест

Код:
QUEST = Quest(902,qn,"Feather Gathering")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addKillId(BOSS)
for npcKillId in [22130,22131,22132,22135] :
  QUEST.addKillId(npcKillId)
ExLite вне форума Отправить сообщение для ExLite с помощью ICQ Отправить сообщение для ExLite с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мануал. Создание квестов Letov Тех-документация 18 10.02.2013 20:03
[Продам] L2Phoenix Enterprise 2S CWTeam Рынок / Marketplace 35 13.11.2010 03:27
[Продам] Квест - Убей Трёх Рб, Получи Вознаграждение RaZoR.eXe Рынок / Marketplace 3 04.06.2010 16:15
[Продам] Gracia Part 2 L2Dream PaInKiLlEr Рынок / Marketplace 10 04.06.2010 00:18


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

Вверх