Сообщений: 314
Тем: 14
Зарегистрирован: Sep 2008
Репутация:
360
FireaGe Написал:Спасибо за первую ошибку, но появилась новая , буду благодарен!
Traceback (innermost last):
File "newsystem.py", line 255, in ?
TypeError: addStartNpc(): 1st arg can't be coerced to int[]
Вы издеваетесь чтоли?=) Почитайте свой прошлый вопрос и ответ ТСа. И перечитайте свой новый вопрос. И постарайтесь додуматься до решения. Если не получится, то вам незачем это вообще.
Сообщений: 289
Тем: 55
Зарегистрирован: Mar 2012
Репутация:
672
так в том и дело, что не пойму, что за прикол
Код: QUEST.addAttackId(ONE_MOB_ID)
QUEST.addAttackId(TWO_MOB_ID)
QUEST.addAttackId(THREE_MOB_ID)
QUEST.addAttackId(FO_MOB_ID)
QUEST.addAttackId(FIVE_MOB_ID) - тут нормально стало
QUEST.addStartNpc(NPC_ID) - теперь ошибка тут...
QUEST.addTalkId(NPC_ID)
Сообщений: 314
Тем: 14
Зарегистрирован: Sep 2008
Репутация:
360
Впишите ID цифрами, если он у вас один. Если не один, то пишите for.
Сообщений: 289
Тем: 55
Зарегистрирован: Mar 2012
Репутация:
672
Код: QUEST.addStartNpc(30086)
QUEST.addTalkId(30086)
- ошибка осталась...
Сообщений: 7
Тем: 2
Зарегистрирован: Jun 2013
Репутация:
1
Archiel Написал:Ну это почти тоже самое. Проверяем при входе в игру, есть ли квест у игрока, и если его нет, то даём его ему. Вот и всё, собственно.
EnterWorld.java
Код: QuestState qs = activeChar.getQuestState("9990_CraftSystem");
Quest q = QuestManager.getInstance().getQuest("9990_CraftSystem");
if (qs == null)
q.newQuestState(activeChar).setState(State.STARTED);
Щас попробую и отпишу.
Сообщений: 314
Тем: 14
Зарегистрирован: Sep 2008
Репутация:
360
FireaGe Написал:Код: QUEST.addStartNpc(30086)
QUEST.addTalkId(30086)
- ошибка осталась...
Полный код своего квеста киньте сюда. Копипастом из своего файла.
Сообщений: 289
Тем: 55
Зарегистрирован: Mar 2012
Репутация:
672
код
# Made by disKret
import sys
from silentium.gameserver import Config
from silentium.commons import Rnd
from silentium.gameserver.model.itemcontainer import Inventory
from silentium.gameserver.model import L2ItemInstance
from silentium.gameserver.model.quest import QuestState
from silentium.gameserver.model.quest.jython import QuestJython as JQuest
qn = "9990_CraftSystem"
#NPC
NPC_ID = 30086
#QUEST ITEM
PACKAGE = 7263
ONE_TYPE_WEAPON = [1, 2, 3, 4]
ONE_TYPE_DROP_ID = [4037, 57, 4356, 4357, 6673]
ONE_TYPE_DROP_COUNT = 1
ONE_TYPE_DROP_CHANCE = 100
ONE_MOB_ID = [18342, 18341, 18343, 18330, 18331]
TWO_TYPE_WEAPON = [1, 2, 3, 4]
TWO_TYPE_DROP_ID = [1, 2, 3, 4, 5]
TWO_TYPE_DROP_COUNT = 1
TWO_TYPE_DROP_CHANCE = 100
TWO_MOB_ID = [111, 111, 111, 111, 111]
THREE_TYPE_WEAPON = [1, 2, 3, 4]
THREE_TYPE_DROP_ID = [1, 2, 3, 4, 5]
THREE_TYPE_DROP_COUNT = 1
THREE_TYPE_DROP_CHANCE = 100
THREE_MOB_ID = [111, 111, 111, 111, 111]
FO_TYPE_WEAPON = [1, 2, 3, 4]
FO_TYPE_DROP_ID = [1, 2, 3, 4, 5]
FO_TYPE_DROP_COUNT = 1
FO_TYPE_DROP_CHANCE = 100
FO_MOB_ID = [111, 111, 111, 111, 111]
FIVE_TYPE_WEAPON = [1, 2, 3, 4]
FIVE_TYPE_DROP_ID = [1, 2, 3, 4, 5]
FIVE_TYPE_DROP_COUNT = 1
FIVE_TYPE_DROP_CHANCE = 100
FIVE_MOB_ID = [111, 111, 111, 111, 111]
print "E6aTb KoIIaTb 3arpy3uJIocb!"
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [PACKAGE]
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 not st : return
st.setState(State('Started', QUEST))
return
def onAttack (self, npc, player, damage, isPet):
st = player.getQuestState(qn)
if not st : return
player = st.getPlayer()
npcId = npc.getNpcId()
if player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND) != None:
type = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND)
elif player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) != None:
type = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND)
else :
return
itemId = type.getItemId()
if itemId in ONE_TYPE_WEAPON and npcId in ONE_MOB_ID:
if itemId == ONE_TYPE_WEAPON[0] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[1] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[2] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[3], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[3] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[3], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[4], ONE_TYPE_DROP_COUNT)
elif itemId in TWO_TYPE_WEAPON and npcId in TWO_MOB_ID:
if itemId == TWO_TYPE_WEAPON[0] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[1] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[2] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[3], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[3] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[3], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[4], TWO_TYPE_DROP_COUNT)
elif itemId in THREE_TYPE_WEAPON and npcId in THREE_MOB_ID:
if itemId == THREE_TYPE_WEAPON[0] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[1] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[2] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[3], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[3] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[3], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[4], THREE_TYPE_DROP_COUNT)
elif itemId in FO_TYPE_WEAPON and npcId in FO_MOB_ID:
if itemId == FO_TYPE_WEAPON[0] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[1] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[2] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[3], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[3] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[3], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[4], FO_TYPE_DROP_COUNT)
elif itemId in FIVE_TYPE_WEAPON and npcId in FIVE_MOB_ID:
if itemId == FIVE_TYPE_WEAPON[0] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[1] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[2] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[3], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[3] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[3], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[4], FIVE_TYPE_DROP_COUNT)
else :
return
return
QUEST = Quest(9990, qn, "Craft System")
QUEST.addAttackId(ONE_MOB_ID)
QUEST.addAttackId(TWO_MOB_ID)
QUEST.addAttackId(THREE_MOB_ID)
QUEST.addAttackId(FO_MOB_ID)
QUEST.addAttackId(FIVE_MOB_ID)
QUEST.addStartNpc(30086)
QUEST.addTalkId(30086)
Сообщений: 7
Тем: 2
Зарегистрирован: Jun 2013
Репутация:
1
Вместо Написать
Код: #NPC
NPC_ID = [30086]
Сообщений: 289
Тем: 55
Зарегистрирован: Mar 2012
Репутация:
672
Код: Traceback (innermost last):
File "newsystem.py", line 255, in ?
TypeError: addStartNpc(): 1st arg can't be coerced to int[]
Сообщений: 314
Тем: 14
Зарегистрирован: Sep 2008
Репутация:
360
FireaGe Написал:Код: Traceback (innermost last):
File "newsystem.py", line 255, in ?
TypeError: addStartNpc(): 1st arg can't be coerced to int[]
Да не может быть такого, когда вы там указали одно число цифрами. Не может. У вас старый лог остался просто, а квест уже давно нормально работает, наверное.
|