Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Отключение проверки скилов
#21
Ну это я так понимаю проверка скилов. Но мы же поняли что дело не в этом,а в том что не пишится в базу скил.

DreamTheater так что разобрался с файлом что я дал?
Ответ
#22
http://forum.zone-game.info/showpost.php...stcount=18
Ответ
#23
Извини не заметил. Проверил,вот что за ошибку выдаёт серв:

Код:
C:\server\gameserver\data\scripts\quests\5809_Usweer_NPC_add_skill\__init__.py
Traceback (innermost last):
  File "__init__.py", line 46, in onTalk
TypeError: addSkill(): expected 1-2 args; got 0

        at org.python.core.Py.TypeError(Unknown Source)
        at org.python.core.PyReflectedFunction.throwError(Unknown Source)
        at org.python.core.PyReflectedFunction.throwArgCountError(Unknown Source
)
        at org.python.core.PyReflectedFunction.throwError(Unknown Source)
        at org.python.core.PyReflectedFunction.__call__(Unknown Source)
        at org.python.core.PyMethod.__call__(Unknown Source)
        at org.python.core.PyObject.__call__(Unknown Source)
        at org.python.core.PyInstance.invoke(Unknown Source)
        at org.python.pycode.serializable._pyx1283883634062.onTalk$3(__init__.py
:46)
        at org.python.pycode.serializable._pyx1283883634062.call_function(__init
__.py)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyFunction.__call__(Unknown Source)
        at org.python.core.PyMethod.__call__(Unknown Source)
        at org.python.core.PyObject.__call__(Unknown Source)
        at org.python.core.PyObject._jcallexc(Unknown Source)
        at org.python.core.PyObject._jcall(Unknown Source)
        at org.python.proxies.main$Quest$410.onTalk(Unknown Source)
        at com.l2jserver.gameserver.model.quest.Quest.notifyTalk(Quest.java:447)

        at handlers.bypasshandlers.QuestLink.showQuestWindow(QuestLink.java:172)

        at handlers.bypasshandlers.QuestLink.useBypass(QuestLink.java:59)
        at com.l2jserver.gameserver.model.actor.L2Npc.onBypassFeedback(L2Npc.jav
a:978)
        at com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer.
runImpl(RequestBypassToServer.java:139)
        at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run
(L2GameClientPacket.java:93)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Ответ
#24
Ой, сори, пропустил аргумент. Вот так правильно:
Код:
import sys
from net.sf.l2j.gameserver.datatables import SkillTable
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 = "5809_Usweer_NPC_add_skill"

#Айтим для бафа (ID Айтима)
ID_ITEM        = 6673
#Колличество айтимов для бафа
NEED_ITEM    = 1

#Айди скила который будет выдан
ID_SKILL    = 420
#Левел скила который будет выдан
LEVEL_SKILL    = 1

#Минимальные левел который может получать баф
MIN_LVL = 1
#Максимальные левел который может получить баф
MAX_LVL = 80

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)
Ответ
#25
Выдаёт такую ошибку:

Код:
E:\serv\gameserver\data\scripts\quests\5809_Usweer_NPC_add_skill\__init__.py
Traceback (innermost last):
  File "__init__.py", line 47, in onTalk
NameError: null

        at org.python.core.Py.NameError(Unknown Source)
        at org.python.core.PyFrame.getglobal(Unknown Source)
        at org.python.pycode.serializable._pyx1283885165343.onTalk$3(__init__.py
:47)
        at org.python.pycode.serializable._pyx1283885165343.call_function(__init
__.py)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyFunction.__call__(Unknown Source)
        at org.python.core.PyMethod.__call__(Unknown Source)
        at org.python.core.PyObject.__call__(Unknown Source)
        at org.python.core.PyObject._jcallexc(Unknown Source)
        at org.python.core.PyObject._jcall(Unknown Source)
        at org.python.proxies.main$Quest$410.onTalk(Unknown Source)
        at com.l2jserver.gameserver.model.quest.Quest.notifyTalk(Quest.java:447)

        at handlers.bypasshandlers.QuestLink.showQuestWindow(QuestLink.java:172)

        at handlers.bypasshandlers.QuestLink.useBypass(QuestLink.java:59)
        at com.l2jserver.gameserver.model.actor.L2Npc.onBypassFeedback(L2Npc.jav
a:978)
        at com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer.
runImpl(RequestBypassToServer.java:139)
        at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run
(L2GameClientPacket.java:93)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)


но скил даёт. Правда при перезаходе он всёровно исчезает
Ответ
#26
Код:
import sys
from net.sf.l2j.gameserver.datatables import SkillTable
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 = "5809_Usweer_NPC_add_skill"

#Айтим для бафа (ID Айтима)
ID_ITEM        = 6673
#Колличество айтимов для бафа
NEED_ITEM    = 1

#Айди скила который будет выдан
ID_SKILL    = 420
#Левел скила который будет выдан
LEVEL_SKILL    = 1

#Минимальные левел который может получать баф
MIN_LVL = 1
#Максимальные левел который может получить баф
MAX_LVL = 80

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

Не помню я всех тонкостей питона. Пробуйте так.
Ответ
#27
Не помогает,та же ошибка. А что это за питон?
Ответ
#28
dgokill Написал:Не помогает,та же ошибка. А что это за питон?

Расширение *.py ни о чем не говорит? http://ru.wikipedia.org/wiki/Python

Добавлено через 6 минут
Решение кроется в этой строке:

st.getPlayer().storeSkill(skill,0,0)

Второй аргумент, там где сейчас стоит ноль, называется L2Skill oldSkill. Он ставится в том случае если персонаж просто поднимает уровень скилла, в таком случае старый скилл удаляется, а новый записывается. В Вашем случае ничего удалять не надо, так как скилл просто добавляется, следовательно на месте аргумента должен стоять нуль. Значения null и 0 вызывают ошибку, экспериментируйте дальше сами.
Ответ
#29
Вроде ход мыслей уловил буду пробовать. Не можешь ещё подсказать насчёт продавца точённого оружия,где достать или как сделать?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  лаг при использовании скилов GameMems 7 3,075 01-16-2018, 03:01 PM
Последний пост: Gaikotsu
  Помогите создать нпс с покупкой скилов aaansideee 0 1,042 10-08-2016, 10:02 PM
Последний пост: aaansideee
  Заточка скилов Lineage 2 Underground 28 vanyahunter123 5 2,456 07-24-2016, 05:48 AM
Последний пост: nache
  Персонаж прекращает движение при использовании активных скилов SkAvenger 16 3,072 03-05-2015, 03:20 PM
Последний пост: SkAvenger
  Отключение Clan Notices KateKate7912 13 3,334 02-19-2015, 12:56 PM
Последний пост: KateKate7912
  [ШАРА]Заточка скилов на максимум с 1 клика OneThunder 2 2,112 11-04-2014, 04:17 PM
Последний пост: OneThunder
  Названия скилов на русском языке awers 6 2,378 10-27-2014, 12:37 AM
Последний пост: Gaikotsu
  Стоимость заточки скилов Intelect 5 1,484 05-13-2014, 11:03 AM
Последний пост: Persy
  Заточка скилов spartana 1 1,487 05-05-2014, 01:15 PM
Последний пост: Melcor
  Функция проверки Pledge Level Krasavella 2 1,806 03-18-2013, 10:17 AM
Последний пост: Krasavella

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)