Skip to content
La2Base
Home
DownloadsWikiForumFAQ
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Квесты/[quest]Ошибка при окончании квеста.
Search

[quest]Ошибка при окончании квеста.

6 replies94 viewsCurrently viewing: 1
Женя
Женя

User

Участник

Posts: 73

На форуме с: 12/19/2008

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

Рейтинг: 0

· 03/06/2009, 10:17 PM

Вообщем проблема у меня такая... Я хочу сделать, что бы за квест в ВоА давались не краски а ФА.

Посмотрел инит файл, изменил награду, и при окончании квеста выдает мне ошибку....

Вот мой инит файл

#Made by Kerb
import sys
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfree.gameserver.datatables import SpawnTable
from com.l2jfree.gameserver.network.serverpackets import NpcSay
from com.l2jfree.tools.random import Rnd

qn = "604_DaimontheWhiteEyedPart2"
#Npcs
EYE = 31683
ALTAR = 31541
#RaidBoss
DAIMON = 25290
#Items
U_SUMMON,S_SUMMON,ESSENCE = range(7192,7195)
#Rewards dye +2int-2men/+2int-2wit/+2men-2int/+2men-2wit/+2wit-2int/+2wit-2men
REWARDS = range(6673,6673) - как я понял это награда........

def FindTemplate (npcId) :
npcinstance = 0
for spawn in SpawnTable.getInstance().getSpawnTable().values():
if spawn :
if spawn.getNpcid() == npcId:
npcinstance=spawn.getLastSpawn()
break
return npcinstance

def AutoChat(npc,text) :
chars = npc.getKnownList().getKnownPlayers().values().toArray()
if chars != None:
for pc in chars :
sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)
pc.sendPacket(sm)

class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = range(7193,7195)

def onAdvEvent (self, event, npc, player) :
if event == "Daimon the White-Eyed has despawned" :
npc.reduceCurrentHp(9999999,npc)
FindTemplate(ALTAR).setBusy(False)
AutoChat(npc,"Darkness could not have ray?")
return
st = player.getQuestState(qn)
if not st: return
cond = st.getInt("cond")
htmltext = event
if event == "31683-02.htm" :
if st.getPlayer().getLevel() < 73 :
htmltext = "31683-00b.htm"
st.exitQuest(1)
else:
st.set("cond","1")
st.setState(State.STARTED)
st.takeItems(U_SUMMON,1)
st.giveItems(S_SUMMON,1)
st.playSound("ItemSound.quest_accept")
elif event == "31541-02.htm" :
if st.getQuestItemsCount(S_SUMMON) == 0 :
htmltext = "31541-04.htm"
elif npc.isBusy() :
htmltext = "31541-03.htm"
else:
spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
st.takeItems(S_SUMMON,1)
npc.setBusy(True)
st.set("cond","2")
self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
AutoChat(spawnId,"Who called me?")
elif event == "31683-04.htm" :
if st.getQuestItemsCount(ESSENCE) >= 1 :
st.takeItems(ESSENCE,1)
st.giveItems(REWARDS[st.getRandom(len(REWARDS))],5)
st.playSound("ItemSound.quest_finish")
st.exitQuest(1)
htmletext = "31683-04.htm"
else:
htmletext = "31683-05.htm"
st.exitQuest(1)
return htmltext

def onTalk (self,npc,player):
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>"
st = player.getQuestState(qn)
if st :
npcId = npc.getNpcId()
id = st.getState()
cond = st.getInt("cond")
if cond == 0 :
if npcId == EYE :
if st.getQuestItemsCount(U_SUMMON) >= 1 :
htmltext = "31683-01.htm"
else:
htmltext = "31683-00a.htm"
elif cond == 1 :
if npcId == EYE :
htmltext = "31683-02a.htm"
if npcId == ALTAR :
htmltext = "31541-01.htm"
elif cond == 2 :
if npcId == ALTAR :
if npc.isBusy() :
htmltext = "31541-03.htm"
else :
htmltext = "31541-02.htm"
spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
npc.setBusy(True)
self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
AutoChat(spawnId,"Who called me?")
elif cond == 3 :
if npcId == EYE :
if st.getQuestItemsCount(ESSENCE) >= 1 :
htmltext = "31683-03.htm"
else :
htmltext = "31683-06.htm"
if npcId == ALTAR :
htmltext = "31541-05.htm"
return htmltext

def onKill(self,npc,player,isPet):
npcId = npc.getNpcId()
if npcId == DAIMON :
FindTemplate(ALTAR).setBusy(False)
self.cancelQuestTimer("Daimon the White-Eyed has despawned",npc,None)
party = player.getParty()
if party :
PartyQuestMembers = []
for player1 in party.getPartyMembers().toArray() :
st1 = player1.getQuestState(qn)
if st1 :
if st1.getState() == State.STARTED and (st1.getInt("cond") == 1 or st1.getInt("cond") == 2) :
PartyQuestMembers.append(st1)
if len(PartyQuestMembers) == 0 : return
st = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
if st.getQuestItemsCount(S_SUMMON) > 0 :
st.takeItems(S_SUMMON,1)
st.giveItems(ESSENCE,1)
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
else :
st = player.getQuestState(qn)
if not st : return
if st.getState() == State.STARTED and (st.getInt("cond") == 1 or st.getInt("cond") == 2) :
if st.getQuestItemsCount(S_SUMMON) > 0 :
st.takeItems(S_SUMMON,1)
st.giveItems(ESSENCE,1)
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
return


QUEST = Quest(604,qn,"Daimon the White-Eyed - Part 2")

QUEST.addStartNpc(EYE)

QUEST.addTalkId(EYE)
QUEST.addTalkId(ALTAR)

QUEST.addKillId(DAIMON)


помогите пожалуйста, очень нужно, может я что-то не так написал, или может что-то дописать нужно?

0
Женя
Женя

User

Участник

Posts: 73

На форуме с: 12/19/2008

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

Рейтинг: 0

· 03/07/2009, 05:18 PM

Люди, помогите плыз!!!!!!!! Очень нереально нада!

0
M
Maksi

User

Участник

Posts: 78

На форуме с: 10/12/2007

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

Рейтинг: 0

· 03/07/2009, 06:15 PM

Я не супер пупер знаток питона так сказал бы на 3-4 знаю примерно, но range(6673,6673) тут надо указывать диапазон ID придметов, попробуй сделать тупо так вот REWARDS = 6673.
А вот эту строчку

Код
st.giveItems(REWARDS[st.getRandom(len(REWARDS))],5)

отредактируй вот так вот:
Код
st.giveItems(REWARDS,5)

Число после запятой "5" это сколько придметов тебе даеться.

0
Женя
Женя

User

Участник

Posts: 73

На форуме с: 12/19/2008

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

Рейтинг: 0

· 03/08/2009, 05:41 AM

Не помогло:(( Ошибка того же содержания.
При окончании квеста выдает вот такую ошибку:
[attachment=2823:quests_error.jpg]

Но факт в том, что такая же ошибка была раньше.
Вставлю еще раз код, может где-то я нечайно не ту запятую поставил:))

Код
#Made by Kerb
import sys
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfree.gameserver.datatables import SpawnTable
from com.l2jfree.gameserver.network.serverpackets import NpcSay
from com.l2jfree.tools.random import Rnd

qn = "604_DaimontheWhiteEyedPart2"
#Npcs
EYE = 31683
ALTAR = 31541
#RaidBoss
DAIMON = 25290
#Items
U_SUMMON,S_SUMMON,ESSENCE = range(7192,7195)
#Rewards dye +2int-2men/+2int-2wit/+2men-2int/+2men-2wit/+2wit-2int/+2wit-2men
REWARDS = 6673

def FindTemplate (npcId) :
    npcinstance = 0
    for spawn in SpawnTable.getInstance().getSpawnTable().values():
        if spawn :
            if spawn.getNpcid() == npcId:
                npcinstance=spawn.getLastSpawn()
                break
    return npcinstance

def AutoChat(npc,text) :
    chars = npc.getKnownList().getKnownPlayers().values().toArray()
    if chars != None:
       for pc in chars :
          sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)
          pc.sendPacket(sm)

class Quest (JQuest) :
def __init__(self,id,name,descr):
     JQuest.__init__(self,id,name,descr)
     self.questItemIds = range(7193,7195)

def onAdvEvent (self, event, npc, player) :
   if event == "Daimon the White-Eyed has despawned" :
      npc.reduceCurrentHp(9999999,npc)
      FindTemplate(ALTAR).setBusy(False)
      AutoChat(npc,"Darkness could not have ray?")
      return
   st = player.getQuestState(qn)
   if not st: return
   cond = st.getInt("cond")
   htmltext = event
   if event == "31683-02.htm" :
      if st.getPlayer().getLevel() < 73 :
         htmltext = "31683-00b.htm"
         st.exitQuest(1)
      else:
         st.set("cond","1")
         st.setState(State.STARTED)
         st.takeItems(U_SUMMON,1)
         st.giveItems(S_SUMMON,1)
         st.playSound("ItemSound.quest_accept")
   elif event == "31541-02.htm" :
       if st.getQuestItemsCount(S_SUMMON) == 0 :
           htmltext = "31541-04.htm"
       elif npc.isBusy() :
           htmltext = "31541-03.htm"
       else:
         spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
         st.takeItems(S_SUMMON,1)
         npc.setBusy(True)
         st.set("cond","2")
         self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
         AutoChat(spawnId,"Who called me?")
   elif event == "31683-04.htm" :
      if st.getQuestItemsCount(ESSENCE) >= 1 :
         st.takeItems(ESSENCE,1)
         st.giveItems(REWARDS,1)
         st.playSound("ItemSound.quest_finish")
         st.exitQuest(1)
         htmletext = "31683-04.htm"
      else:
         htmletext = "31683-05.htm"
         st.exitQuest(1)
   return htmltext

def onTalk (self,npc,player):
   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>"
   st = player.getQuestState(qn)
   if st :
     npcId = npc.getNpcId()
     id = st.getState()
     cond = st.getInt("cond")
     if cond == 0 :
       if npcId == EYE :
         if st.getQuestItemsCount(U_SUMMON) >= 1 :
           htmltext = "31683-01.htm"
         else:
           htmltext = "31683-00a.htm"
     elif cond == 1 :
       if npcId == EYE :
         htmltext = "31683-02a.htm"
       if npcId == ALTAR :
         htmltext = "31541-01.htm"
     elif cond == 2 :
       if npcId == ALTAR :
           if npc.isBusy() :
               htmltext = "31541-03.htm"
           else :
               htmltext = "31541-02.htm"
               spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
               npc.setBusy(True)
               self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
               AutoChat(spawnId,"Who called me?")
     elif cond == 3 :

       if npcId == EYE :
            if st.getQuestItemsCount(ESSENCE) >= 1 :
                htmltext = "31683-03.htm"
            else :
                htmltext = "31683-06.htm"
       if npcId == ALTAR :
         htmltext = "31541-05.htm"
     return htmltext

def onKill(self,npc,player,isPet):
     npcId = npc.getNpcId()
     if npcId == DAIMON :
        FindTemplate(ALTAR).setBusy(False)
        self.cancelQuestTimer("Daimon the White-Eyed has despawned",npc,None)
        party = player.getParty()
        if party :
            PartyQuestMembers = []
            for player1 in party.getPartyMembers().toArray() :
                st1 = player1.getQuestState(qn)
                if st1 :
                    if st1.getState() == State.STARTED and (st1.getInt("cond") == 1 or st1.getInt("cond") == 2) :
                        PartyQuestMembers.append(st1)
            if len(PartyQuestMembers) == 0 : return
            st = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
            if st.getQuestItemsCount(S_SUMMON) > 0 :
                st.takeItems(S_SUMMON,1)
            st.giveItems(ESSENCE,1)
            st.set("cond","3")
            st.playSound("ItemSound.quest_middle")
        else :
            st = player.getQuestState(qn)
            if not st : return
            if st.getState() == State.STARTED and (st.getInt("cond") == 1 or st.getInt("cond") == 2) :
                if st.getQuestItemsCount(S_SUMMON) > 0 :
                    st.takeItems(S_SUMMON,1)
                st.giveItems(ESSENCE,1)
                st.set("cond","3")
                st.playSound("ItemSound.quest_middle")
     return


QUEST = Quest(604,qn,"Daimon the White-Eyed - Part 2")

QUEST.addStartNpc(EYE)

QUEST.addTalkId(EYE)
QUEST.addTalkId(ALTAR)

QUEST.addKillId(DAIMON)

0
Женя
Женя

User

Участник

Posts: 73

На форуме с: 12/19/2008

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

Рейтинг: 0

· 03/09/2009, 01:40 PM

Ну помогите пожалуйста! Очень нужно

0
saracin
saracin

User

Ветеран

Posts: 575

На форуме с: 04/22/2008

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

Рейтинг: 0

· 03/10/2009, 10:34 AM
попробуй так
<script type='text/javascript'>
mytagid = Math.floor( Math.random() * 100 );
document.write("
» Нажмите, чтобы показать текст - нажмите опять, чтобы скрыть... «

#Made by Kerb
import sys
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfree.gameserver.datatables import SpawnTable
from com.l2jfree.gameserver.network.serverpackets import NpcSay
from com.l2jfree.tools.random import Rnd

qn = "604_DaimontheWhiteEyedPart2"
#Npcs
EYE = 31683
ALTAR = 31541
#RaidBoss
DAIMON = 25290
#Items
U_SUMMON,S_SUMMON,ESSENCE = range(7192,7195)
#Rewards dye +2int-2men/+2int-2wit/+2men-2int/+2men-2wit/+2wit-2int/+2wit-2men
REWARDS = range(6673,6673)

def FindTemplate (npcId) :
npcinstance = 0
for spawn in SpawnTable.getInstance().getSpawnTable().values():
if spawn :
if spawn.getNpcid() == npcId:
npcinstance=spawn.getLastSpawn()
break
return npcinstance

def AutoChat(npc,text) :
chars = npc.getKnownList().getKnownPlayers().values().toArray()
if chars != None:
for pc in chars :
sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)
pc.sendPacket(sm)

class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = range(7193,7195)

def onAdvEvent (self, event, npc, player) :
if event == "Daimon the White-Eyed has despawned" :
npc.reduceCurrentHp(9999999,npc)
FindTemplate(ALTAR).setBusy(False)
AutoChat(npc,"Darkness could not have ray?")
return
st = player.getQuestState(qn)
if not st: return
cond = st.getInt("cond")
htmltext = event
if event == "31683-02.htm" :
if st.getPlayer().getLevel() < 73 :
htmltext = "31683-00b.htm"
st.exitQuest(1)
else:
st.set("cond","1")
st.setState(State.STARTED)
st.takeItems(U_SUMMON,1)
st.giveItems(S_SUMMON,1)
st.playSound("ItemSound.quest_accept")
elif event == "31541-02.htm" :
if st.getQuestItemsCount(S_SUMMON) == 0 :
htmltext = "31541-04.htm"
elif npc.isBusy() :
htmltext = "31541-03.htm"
else:
spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
st.takeItems(S_SUMMON,1)
npc.setBusy(True)
st.set("cond","2")
self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
AutoChat(spawnId,"Who called me?")
elif event == "31683-04.htm" :
if st.getQuestItemsCount(ESSENCE) >= 1 :
st.takeItems(ESSENCE,1)
st.giveItems(REWARDS[st.getRandom(len(REWARDS))],1000)
st.playSound("ItemSound.quest_finish")
st.exitQuest(1)
htmletext = "31683-04.htm"
else:
htmletext = "31683-05.htm"
st.exitQuest(1)
return htmltext

def onTalk (self,npc,player):
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>"
st = player.getQuestState(qn)
if st :
npcId = npc.getNpcId()
id = st.getState()
cond = st.getInt("cond")
if cond == 0 :
if npcId == EYE :
if st.getQuestItemsCount(U_SUMMON) >= 1 :
htmltext = "31683-01.htm"
else:
htmltext = "31683-00a.htm"
elif cond == 1 :
if npcId == EYE :
htmltext = "31683-02a.htm"
if npcId == ALTAR :
htmltext = "31541-01.htm"
elif cond == 2 :
if npcId == ALTAR :
if npc.isBusy() :
htmltext = "31541-03.htm"
else :
htmltext = "31541-02.htm"
spawnId = st.addSpawn(DAIMON,186320,-43904,-3175)
npc.setBusy(True)
self.startQuestTimer("Daimon the White-Eyed has despawned",1200000,spawnId,None)
AutoChat(spawnId,"Who called me?")
elif cond == 3 :
if npcId == EYE :
if st.getQuestItemsCount(ESSENCE) >= 1 :
htmltext = "31683-03.htm"
else :
htmltext = "31683-06.htm"
if npcId == ALTAR :
htmltext = "31541-05.htm"
return htmltext

def onKill(self,npc,player,isPet):
npcId = npc.getNpcId()
if npcId == DAIMON :
FindTemplate(ALTAR).setBusy(False)
self.cancelQuestTimer("Daimon the White-Eyed has despawned",npc,None)
party = player.getParty()
if party :
PartyQuestMembers = []
for player1 in party.getPartyMembers().toArray() :
st1 = player1.getQuestState(qn)
if st1 :
if st1.getState() == State.STARTED and (st1.getInt("cond") == 1 or st1.getInt("cond") == 2) :
PartyQuestMembers.append(st1)
if len(PartyQuestMembers) == 0 : return
st = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
if st.getQuestItemsCount(S_SUMMON) > 0 :
st.takeItems(S_SUMMON,1)
st.giveItems(ESSENCE,1)
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
else :
st = player.getQuestState(qn)
if not st : return
if st.getState() == State.STARTED and (st.getInt("cond") == 1 or st.getInt("cond") == 2) :
if st.getQuestItemsCount(S_SUMMON) > 0 :
st.takeItems(S_SUMMON,1)
st.giveItems(ESSENCE,1)
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
return


QUEST = Quest(604,qn,"Daimon the White-Eyed - Part 2")

QUEST.addStartNpc(EYE)

QUEST.addTalkId(EYE)
QUEST.addTalkId(ALTAR)

QUEST.addKillId(DAIMON)


скрыть
");
document.close();

— Бойтесь

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