Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Отключение проверки скилов
#11
Нет, не записывается. А как это исправить? Может через какие-то команды AdminSkills.java?
Ответ
#12
dgokill Написал:Нет, не записывается. А как это исправить? Может через какие-то команды AdminSkills.java?

Выложите исходники Вашего продавца, посмотрю что можно сделать.

В них нужно добавить кусок кода, который после покупки будет не просто добавлять скилл чару, но и записывать его в базу.
Ответ
#13
Вот оно:

Код:
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)

Благодарю что уделяешь время на это.
Ответ
#14
Попробуйте изменить код следующим образом.

Было:
Код:
...
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)
...
Если не получится, напишите какие ошибки выдает.
Ответ
#15
В общем сделал я вот так:


Код:
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.

Может не так что-то сделал?
Ответ
#16
Скинь файл целиком.
Ответ
#17
Ну вобщем то это и был файл целиком,ну раз надо,то держи всё:

Скачать файл 917_NPC_for_give_sk.rar
Ответ
#18
http://dump.ru/file/4771404

Попробуйте вот такой вариант. У меня при загрузке ошибок никаких не выдал.
Ответ
#19
В EnterWorld поищи checkskill
Ответ
#20
Open-Shadow Написал:В EnterWorld поищи checkskill

Не представляю чем это ему поможет Smile
Ответ


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

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


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