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

Перенос квеста

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

Как перенести квест? в scripts прописал,в папку quest перенес,в чём может еще быть проблема?

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


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

перенес квест,вот пишет такую ошибку,в чём проблема подскажите

проблема в QuestState

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


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

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 = "q902_FeatherGathering"

 

## нпц

NPC = 77777

 

## Мобы

MOBS = [22126,22124,22123]

#босс

BOSS = 70020

 

## Дроп

#id перьев с мобов в мос

FEATHER = 9983

#сколько нужно?

FEATHER_NEED = 300

#шанс дропа, %

FEATHER_CHANCE = 50

#id итема с босса

BOSS_ITEM = 9984

 

##Награда

#id крыльев

WINGS = 9996

 

class Quest (JQuest) :

 

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

 

 def onEvent (self,event,st) :

   htmltext = event

   if event == "accept.htm":

     st.setState(State.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(WINGS, 1)

       st.set("cond","0")

       st.playSound("ItemSound.quest_finish")

       st.setState(State.COMPLETED)

     else:

       htmltext = "mobs.htm"

   return htmltext

 

 def onTalk (self,npc,player):

   st = player.getQuestState(qn)

   if not st: 

     return "<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>"

   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

   if npcId in MOBS:

     reward = FEATHER

     limit = FEATHER_NEED

     chance = FEATHER_CHANCE

   if npcId == BOSS:

     reward = BOSS_ITEM

     limit = 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, 1)

             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, 1)

         st.playSound("ItemSound.quest_itemget")

   return  

 

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

 

QUEST.addStartNpc(NPC)

QUEST.addTalkId(NPC)

QUEST.addKillId(BOSS)

 

for m in MOBS:

  QUEST.addKillId(m)

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


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

А что с ним надо сделать?

тебя пнули в нужном направлении, подобные темы уже есть, изучай, я лично палец о палец не ударю

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


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

Квест на крылья судя по всему =)

и да начнется что за сборка?

поменял импорты?

Изменено пользователем Redon

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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

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