Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Core buffer l2j
#1
Ставлю кастомного бафера на сервер,и в процессе эксплуатации выдает ошибки. Нубас в кодинге) Разжуйте что посмотреть,где подправить Smile

http://pastebin.com/L7nf4P3H

В логах такие ошибки :

Ответ
#2
АП. Помогите разобраться :confused:

Добавлено через 51 минуту
Готов заплатить за рабочего баффера.
Сборку+патч для сервере так же предоставлю.

icq 3667373
Ответ
#3
Для более-менее внятного ответа нужны классы QuestState, Quest, L2NpcInstance, L2PcInstance в вашей редакции. Выкладывайте на pastebin - посмотрим.
Ответ
#4
ProDev Написал:Для более-менее внятного ответа нужны классы QuestState, Quest, L2NpcInstance, L2PcInstance в вашей редакции. Выкладывайте на pastebin - посмотрим.

скрипт бафера http://pastebin.com/dV5zR3Tm

QuestState http://pastebin.com/ALTCYsMY

Quest http://pastebin.com/7uxYvi4U

L2NpcInstance http://pastebin.com/EGzf2h6K

L2PcInstance http://pastebin.com/0wEQqPVx

Привет. Проверь скайп Wink
Ответ
#5
xilane Написал:скрипт бафера http://pastebin.com/dV5zR3Tm

QuestState http://pastebin.com/ALTCYsMY

Quest http://pastebin.com/7uxYvi4U

L2NpcInstance http://pastebin.com/EGzf2h6K

L2PcInstance http://pastebin.com/0wEQqPVx

Привет. Проверь скайп Wink

Изменился метод onTalk() в py-скрипте, теперь какая ошибка?

А вообще ранее была проблема в следующем: смотрим класс Quest, видим метод:

Код:
@SuppressWarnings("unused")
    public String onTalk(L2NpcInstance npc, QuestState qs)
    {
        return null;
    }

Теперь заглядываем в скрипт баффера:

Код:
def onTalk (self,npc,player):
           st = player.getQuestState(qn)
           htmltext = "<html><head><body>I have nothing to say to you</body></html>"
           st.setState(State.STARTED)
           return "buff.htm"

Видим, что сигнатуры не совпадают. в onTalk() передаются L2NpcInstance - NPC, с которым ведется диалог, а следом QuestState - статус квеста. А в прошлой версии была попытка обратиться к getQuestState() методу объекта player, хотя player тут, на самом-то деле, и есть QuestState. То есть достаточно записать следующее:

Код:
def onTalk (self,npc,st):
           return "buff.htm"

Далее - если речь о коде l2jlisvus, то там нет State.STARTED public static переменной, видимо, код баффера из другой сборки.


Так какие сейчас ошибки с измененным методом onTalk()?

PS Временно без скайпа, смогу выйти на связь вечером.
Ответ
#6
ProDev, спасибо за информативное сообщение!
Да, Вы правильно поняли, что речь идет о коде l2jlisvus.

После изменения метода в гсе следующая ошибка:
Цитата:net.sf.l2j.gameserver.clientpackets.RequestBypassToServer runImpl
WARNING: Bad RequestBypassToServer:
java.lang.NullPointerException
at net.sf.l2j.gameserver.model.quest.QuestState.getStateId(QuestState.java:270)
at net.sf.l2j.gameserver.model.quest.Quest.createQuestInDb(Quest.java:1003)
at net.sf.l2j.gameserver.model.quest.Quest.newQuestState(Quest.java:178)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance.showQuestWindow(L2NpcInstance.java:1312)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance.showQuestWindow(L2NpcInstance.java:1401)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance.onBypassFeedback(L2NpcInstance.java:951)
at net.sf.l2j.gameserver.model.actor.instance.L2FolkInstance.onBypassFeedback(L2FolkInstance.java:339)
at net.sf.l2j.gameserver.model.actor.instance.L2MerchantInstance.onBypassFeedback(L2MerchantInstance.java:156)
at net.sf.l2j.gameserver.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:130)
at net.sf.l2j.gameserver.clientpackets.ClientBasePacket.run(ClientBasePacket.java:85)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ответ
#7
xilane Написал:ProDev, спасибо за информативное сообщение!
Да, Вы правильно поняли, что речь идет о коде l2jlisvus.

После изменения метода в гсе следующая ошибка:

Пока не за что Smile

Сейчас дело в том, что не установлен QuestState, а ему и неоткуда взяться - он ставится явно в самом скрипте.

Попробуйте конец скрипта сделать в следующем виде:

Код:
QUEST       = Quest(912,qn,"Custom")
CREATED    = State('Start', QUEST)
QUEST.setInitialState(CREATED)

for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Ответ
#8
ProDev, После модификации скрипта, в логах ошибок нет, все работает Smile!
(Выскакивает пару, но это изза отсутствия скиллов ИТ в С4)

Что касательно анимации баффа, подскажите пожалуйста.

Встречал команды типа useMagic, doCast.

Приведите пример как реализовать каст бафов с анимацие на стороне НПЦ, пожалуйста!

p.s.
Есть бафы, которые кастуются со стороны игрока, а так же съедают его мп.
Как быть с этим?
Добавлять в конце операции:

st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())

?
Ответ
#9
xilane Написал:ProDev, После модификации скрипта, в логах ошибок нет, все работает Smile!
(Выскакивает пару, но это изза отсутствия скиллов ИТ в С4)

Что касательно анимации баффа, подскажите пожалуйста.

Встречал команды типа useMagic, doCast.

Приведите пример как реализовать каст бафов с анимацие на стороне НПЦ, пожалуйста!

p.s.
Есть бафы, которые кастуются со стороны игрока, а так же съедают его мп.
Как быть с этим?
Добавлять в конце операции:

st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())

?

По части баффов - сейчас сходу сказать не готов, нужно смотреть код в l2jlisvus, рекомендую дождаться форка от нас, тогда сможем оказать поддержку и в этом направлении.

Что касается второго вопроса - не совсем понял, что именно не так? Нужен конкретный пример - какой скилл, как используется, что не так работает.
Ответ
#10
ProDev Написал:По части баффов - сейчас сходу сказать не готов, нужно смотреть код в l2jlisvus, рекомендую дождаться форка от нас, тогда сможем оказать поддержку и в этом направлении.

Что касается второго вопроса - не совсем понял, что именно не так? Нужен конкретный пример - какой скилл, как используется, что не так работает.

Простите за то , что запутал Вас.

Приведу пример к чему стремлюсь:

Игрок подходит к НПЦ -> выбирает необходимый из списка баф -> клацает -> происходит анимация(Wind walk,might,acumen и т.д.) бафа со стороны НПЦ + накладывается сам баф на игрока.

Какие изменения необходимо внести в код строчки для того, чтобы реализовать данный процесс ?

Код:
SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Buffer со схемами atomick 13 3,410 05-26-2012, 05:16 PM
Последний пост: atomick
  [Core]Community Board surfacing 68 56,947 03-25-2012, 10:44 PM
Последний пост: Jocker
  Phoenix Engine Core для l2j серверов crazy_voin 6 3,296 02-23-2012, 06:02 AM
Последний пост: Psych_O
  Баг со сборкой L2brick (buffer restore HP) hqteam 13 4,720 01-09-2012, 03:11 AM
Последний пост: hqteam
  l2dot Buffer [!] Shinigamix 4 4,143 11-06-2011, 07:30 PM
Последний пост: Z3oM
  CommunityBoard buffer Литион 2 2,346 09-11-2011, 11:46 PM
Последний пост: NightAngel
  [Core] Наработки surfacing 140 48,445 08-15-2011, 11:57 AM
Последний пост: surfacing
  Scripts Buffer xGoooDx 6 2,664 07-03-2011, 07:42 PM
Последний пост: xGoooDx
  [CORE] Not use skill's weapon condition for NPC Aristocrat 1 1,544 06-28-2011, 08:59 AM
Последний пост: ANZO
  [Core]помогите дописать код leva290791 0 1,523 03-30-2011, 08:34 PM
Последний пост: leva290791

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


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