Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Core buffer l2j (https://forum.zone-game.info/showthread.php?t=37945)

ccc 02.03.2015 03:06

Core buffer l2j
 
Ставлю кастомного бафера на сервер,и в процессе эксплуатации выдает ошибки. Нубас в кодинге) Разжуйте что посмотреть,где подправить :)

http://pastebin.com/L7nf4P3H

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

:
Свернуть ↑Развернуть ↓

ccc 05.03.2015 20:15

Re: Core buffer l2j
 
АП. Помогите разобраться :confused:

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

icq 3667373

ProDev 06.03.2015 02:21

Re: Core buffer l2j
 
Для более-менее внятного ответа нужны классы QuestState, Quest, L2NpcInstance, L2PcInstance в вашей редакции. Выкладывайте на pastebin - посмотрим.

ccc 06.03.2015 02:52

Re: Core buffer l2j
 
Цитата:

Сообщение от ProDev (Сообщение 388756)
Для более-менее внятного ответа нужны классы 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

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

ProDev 06.03.2015 12:13

Re: Core buffer l2j
 
Цитата:

Сообщение от xilane (Сообщение 388759)
скрипт бафера http://pastebin.com/dV5zR3Tm

QuestState http://pastebin.com/ALTCYsMY

Quest http://pastebin.com/7uxYvi4U

L2NpcInstance http://pastebin.com/EGzf2h6K

L2PcInstance http://pastebin.com/0wEQqPVx

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

Изменился метод 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 Временно без скайпа, смогу выйти на связь вечером.

ccc 06.03.2015 14:16

Re: Core buffer l2j
 
ProDev, спасибо за информативное сообщение!
Да, Вы правильно поняли, что речь идет о коде l2jlisvus.

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

net.sf.l2j.gameserver.clientpackets.RequestBypassT oServer runImpl
WARNING: Bad RequestBypassToServer:
java.lang.NullPointerException
at net.sf.l2j.gameserver.model.quest.QuestState.getSt ateId(QuestState.java:270)
at net.sf.l2j.gameserver.model.quest.Quest.createQues tInDb(Quest.java:1003)
at net.sf.l2j.gameserver.model.quest.Quest.newQuestSt ate(Quest.java:178)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcIn stance.showQuestWindow(L2NpcInstance.java:1312)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcIn stance.showQuestWindow(L2NpcInstance.java:1401)
at net.sf.l2j.gameserver.model.actor.instance.L2NpcIn stance.onBypassFeedback(L2NpcInstance.java:951)
at net.sf.l2j.gameserver.model.actor.instance.L2FolkI nstance.onBypassFeedback(L2FolkInstance.java:339)
at net.sf.l2j.gameserver.model.actor.instance.L2Merch antInstance.onBypassFeedback(L2MerchantInstance.ja va:156)
at net.sf.l2j.gameserver.clientpackets.RequestBypassT oServer.runImpl(RequestBypassToServer.java:130)
at net.sf.l2j.gameserver.clientpackets.ClientBasePack et.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)

ProDev 06.03.2015 14:50

Re: Core buffer l2j
 
Цитата:

Сообщение от xilane (Сообщение 388786)
ProDev, спасибо за информативное сообщение!
Да, Вы правильно поняли, что речь идет о коде l2jlisvus.

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

Пока не за что :)

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

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

Код:

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

for npcId in NPC:
 QUEST.addStartNpc(npcId)
 QUEST.addTalkId(npcId)


ccc 06.03.2015 16:14

Re: Core buffer l2j
 
ProDev, После модификации скрипта, в логах ошибок нет, все работает :)!
(Выскакивает пару, но это изза отсутствия скиллов ИТ в С4)

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

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

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

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

st.getPlayer().setCurrentHpMp(st.getPlayer().getMa xHp(), st.getPlayer().getMaxMp())

?

ProDev 07.03.2015 01:18

Re: Core buffer l2j
 
Цитата:

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

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

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

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

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

st.getPlayer().setCurrentHpMp(st.getPlayer().getMa xHp(), st.getPlayer().getMaxMp())

?

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

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

ccc 07.03.2015 01:59

Re: Core buffer l2j
 
Цитата:

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

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

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

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

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

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

Код:

SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())


Текущее время: 06:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot