Сообщений: 41
Тем: 8
Зарегистрирован: Aug 2010
Репутация:
0
Нет, не записывается. А как это исправить? Может через какие-то команды AdminSkills.java?
Сообщений: 62
Тем: 5
Зарегистрирован: Aug 2010
Репутация:
1,369
dgokill Написал:Нет, не записывается. А как это исправить? Может через какие-то команды AdminSkills.java?
Выложите исходники Вашего продавца, посмотрю что можно сделать.
В них нужно добавить кусок кода, который после покупки будет не просто добавлять скилл чару, но и записывать его в базу.
Сообщений: 41
Тем: 8
Зарегистрирован: Aug 2010
Репутация:
0
Вот оно:
Код: import sys
from com.l2jserver.gameserver.datatables import SkillTable
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
qn = "5809_Usweer_NPC_add_skill"
#Айтим для бафа (ID Айтима)
ID_ITEM = 57
#Колличество айтимов для бафа
NEED_ITEM = 1
#Айди скила который будет выдан
ID_SKILL = 420
#Левел скила который будет выдан
LEVEL_SKILL = 1
#Минимальные левел который может получать баф
MIN_LVL = 1
#Максимальные левел который может получить баф
MAX_LVL = 85
NPC=[51809]
QuestId = 5809
QuestName = "Usweer_NPC_add_skill"
QuestDesc = "quest"
print "importing quest: 51809: Usweer NPC ---add skill---"
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
st = player.getQuestState(qn)
if st.getPlayer().getLevel() < MIN_LVL or st.getPlayer().getLevel() > MAX_LVL :
return "badlevel.htm"
elif st.getState() == State.COMPLETED :
return "skillinyou.htm"
elif st.getQuestItemsCount(ID_ITEM) < NEED_ITEM :
return "noitem.htm"
else:
st.takeItems(ID_ITEM,NEED_ITEM)
st.getPlayer().addSkill(SkillTable.getInstance().getInfo(ID_SKILL,LEVEL_SKILL))
st.setState(State.COMPLETED)
return "skilladd.htm"
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Благодарю что уделяешь время на это.
Сообщений: 62
Тем: 5
Зарегистрирован: Aug 2010
Репутация:
1,369
Попробуйте изменить код следующим образом.
Было:
Код: ...
st.getPlayer().addSkill(SkillTable.getInstance().getInfo(ID_SKILL,LEVEL_SKILL))
st.setState(State.COMPLETED)
...
Стало:
Код: ...
skill = SkillTable.getInstance().getInfo(ID_SKILL,LEVEL_SKILL)
st.getPlayer().addSkill(skill)
st.getPlayer().storeSkill(skill, null, 0)
st.setState(State.COMPLETED)
...
Если не получится, напишите какие ошибки выдает.
Сообщений: 41
Тем: 8
Зарегистрирован: Aug 2010
Репутация:
0
В общем сделал я вот так:
Код: import sys
from com.l2jserver.gameserver.datatables import SkillTable
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
qn = "5809_Usweer_NPC_add_skill"
#Айтим для бафа (ID Айтима)
ID_ITEM = 57
#Колличество айтимов для бафа
NEED_ITEM = 1
#Айди скила который будет выдан
ID_SKILL = 420
#Левел скила который будет выдан
LEVEL_SKILL = 1
#Минимальные левел который может получать баф
MIN_LVL = 1
#Максимальные левел который может получить баф
MAX_LVL = 85
NPC=[51809]
QuestId = 5809
QuestName = "Usweer_NPC_add_skill"
QuestDesc = "quest"
print "importing quest: 51809: Usweer NPC ---add skill---"
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
st = player.getQuestState(qn)
if st.getPlayer().getLevel() < MIN_LVL or st.getPlayer().getLevel() > MAX_LVL :
return "badlevel.htm"
elif st.getState() == State.COMPLETED :
return "skillinyou.htm"
elif st.getQuestItemsCount(ID_ITEM) < NEED_ITEM :
return "noitem.htm"
else:
st.takeItems(ID_ITEM,NEED_ITEM)
skill = SkillTable.getInstance().getInfo(ID_SKILL,LEVEL_SKILL)
st.getPlayer().addSkill(skill)
st.getPlayer().storeSkill(skill, null, 0)
st.setState(State.COMPLETED)
return "skilladd.htm"
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Скил,не даёт. Пишет кажется что нет такого квеста. А в сервере вылетает вот что:
Код: Failed executing script: C:\server\gameserver\data\scripts\quests\5809_Usweer_NPC_
add_skill\__init__.py. See __init__.py.error.log for details.
Compiled Scripts Cache is disabled.
Может не так что-то сделал?
Сообщений: 62
Тем: 5
Зарегистрирован: Aug 2010
Репутация:
1,369
Сообщений: 41
Тем: 8
Зарегистрирован: Aug 2010
Репутация:
0
Ну вобщем то это и был файл целиком,ну раз надо,то держи всё:
Скачать файл 917_NPC_for_give_sk.rar
Сообщений: 62
Тем: 5
Зарегистрирован: Aug 2010
Репутация:
1,369
http://dump.ru/file/4771404
Попробуйте вот такой вариант. У меня при загрузке ошибок никаких не выдал.
Сообщений: 165
Тем: 9
Зарегистрирован: Jul 2010
В EnterWorld поищи checkskill
Сообщений: 62
Тем: 5
Зарегистрирован: Aug 2010
Репутация:
1,369
Open-Shadow Написал:В EnterWorld поищи checkskill
Не представляю чем это ему поможет
|