Проблема с призыванием кукол

Fredderick

Путник
Пользователь
Сообщения
27
Розыгрыши
0
Репутация
0
Реакции
3
Баллы
16
Запрещено публиковать исходный код без BB-кода — CODE
Хроники
  1. Master Class
Исходники
Присутствуют
Сборка
L2J_Mobius_Essence_8.2_HeartOfVolcano
qq

Существуют купоны призыва кукл, (1 штука) (11 штук) обычные редкие и т.п.

При вызывании одной из них срёт ошибку в консоли по типу:

[04/10 02:19:41] java.lang.NullPointerException: Cannot invoke "org.l2jmobius.gameserver.model.holders.RelicDataHolder.getGrade()" because the return value of "org.l2jmobius.gameserver.data.xml.RelicData.getRelic(int)" is null
at org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsSummonResult.writeImpl(ExRelicsSummonResult.java:263)
at org.l2jmobius.gameserver.network.serverpackets.ServerPacket.write(ServerPacket.java:154)
at org.l2jmobius.gameserver.network.serverpackets.ServerPacket.write(ServerPacket.java:31)
at org.l2jmobius.commons.network.WritablePacket.writeDataToBuffer(WritablePacket.java:72)
at org.l2jmobius.commons.network.WritablePacket.writeData(WritablePacket.java:48)
at org.l2jmobius.commons.network.Client.write(Client.java:144)
at org.l2jmobius.commons.network.Client.writeNextPacket(Client.java:129)
at org.l2jmobius.commons.network.internal.fairness.SingleBucketStrategy.doNextAction(SingleBucketStrategy.java:42)
at org.l2jmobius.commons.network.internal.fairness.FairnessController.nextFairAction(FairnessController.java:65)
at org.l2jmobius.commons.network.Client.writeFairPacket(Client.java:110)
at org.l2jmobius.commons.network.Client.writePacket(Client.java:81)
at org.l2jmobius.gameserver.network.GameClient.sendPacket(GameClient.java:235)
at org.l2jmobius.gameserver.model.actor.Player.sendPacket(Player.java:4620)
at handlers.itemhandlers.RelicSummonCoupon.useItem(RelicSummonCoupon.java:63)
at org.l2jmobius.gameserver.network.clientpackets.UseItem.runImpl(UseItem.java:444)
at org.l2jmobius.gameserver.network.clientpackets.ClientPacket.run(ClientPacket.java:53)
at org.l2jmobius.commons.threads.RunnableWrapper.run(RunnableWrapper.java:35)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)


Как я понимаю в RelicData нужно записать этот купон что бы он был в дате.
Тут существуют вот такие строки:

<relic id="1" grade="1" skillId="50702"> <!-- Princess Molrang Doll -->
<relicStat enchantLevel="0" skillLevel="1" /> <!-- Princess Molrang Doll Lv. 1 -->


Но он же должен призывать их по сути дела? Или купоны всё таки тоже должны быть прописаны?
Если да, то вопрос - как это правильно описать?
 
ну я не коперфильд, но в ошибке как будто написано, что он не может понять какой грейд у куклы?
 
ну я не коперфильд, но в ошибке как будто написано, что он не может понять какой грейд у куклы?
376 строк в RelicData , 308 строк в RelicDataCollection, как будто бы все куклы существуют для него, вопрос почему он вообще бьёт ошибку
 
билета нету для призыва на сервере??
 

Вложения

  • 1727983865476.png
    1727983865476.png
    84,8 КБ · Просмотры: 80
ну это они в клиенте, а в итемах они есть?
 
Оверпостинг
а, ну если они в инвентаре, значит есть

в теме написано "при призывании одной из них", то есть остальные он дает выбрать?
 
Последнее редактирование модератором:
ну а что с купона получаете прописано?
Вот в этом и вопрос.

Если это должно быть прописано, то где и каким методом.
Если в RelicData / RelicCollection то нет, там ТОЛЬКО КУКЛЫ. А купоны не прописаны.
Мне хотя бы 1 пример как это выглядит, я пойму и сам всё сделаю.

в теме написано "при призывании одной из них", то есть остальные он дает выбрать?
Имею ввиду при призыве куклы в принципе. Ошибся в формулировке.

Любой купон крашит в логах.

а, ну если они в инвентаре, значит есть
Ну по скольку сервер их видит и я спокойно через alt+g их выдал, предполагаю что они есть)
 
Ага, да, и геарскор там есть.
Ниxyя там кроме пакетки не реализовано)
 
Ниxyя там кроме пакетки не реализовано)
немного оффтопа

возможно посоветуешь сейчас самый адекватный эмулятор? мб какие-то платные варианты по типу 'заплатил - запустил - играешь'
 
немного оффтопа

возможно посоветуешь сейчас самый адекватный эмулятор? мб какие-то платные варианты по типу 'заплатил - запустил - играешь'
Я то знаю у кого есть, но продает ли хз)
Если даже и продает, то сумма там будет не маленькая)
Если планируешь этим в одну кабину заниматься, без тимы, то мобиус наверное лучший вариант, сиди и ковыряй.
 
Я то знаю у кого есть, но продает ли хз)
Если даже и продает, то сумма там будет не маленькая)
Если планируешь этим в одну кабину заниматься, без тимы, то мобиус наверное лучший вариант, сиди и ковыряй.
Черкани контактик в личку пожалуйста.
деньги не главное в этой жизни) по этому интересно будет посмотреть
 

Вложения

  • Screenshot_4.png
    Screenshot_4.png
    521,5 КБ · Просмотры: 46
  • Screenshot_5.png
    Screenshot_5.png
    558,7 КБ · Просмотры: 28
  • Screenshot_6.png
    Screenshot_6.png
    616,7 КБ · Просмотры: 45
Что нужно что бы это фиксануть? (кроме тупых ответов про мозги пожалуйста)
Я добавил парсер релик купонов, каждому купону задал ид вытаскиваемых из него реликвий.
Убрал наxyй конфиги от мобиуса.
В кратце. У тебя по дефолту код мобиуса пытается призвать реликвию с ид 0, и ему абсолютно похуй на твои данные., он пытается только ид 0 призвать, которого не существует.
 
Последнее редактирование:
Получается ты убрал RelicData / RelicCollections И написал свой парсер...
ля, как понимаю проще варианта на сегодня уже не будет)
зачем мне убирать парсер даты и коллекций? чтобы что? заного их написать?
нет, я добавил новый парсер, где указал ид купонов, купонам добавил ид реликвий из релик даты.
 
А как же: шансы, коллекции кукол, оповещение про вытаскивание, оповещение про сбор коллекции
Или делал ради, сделать что бы заработало?
 
А как же: шансы, коллекции кукол, оповещение про вытаскивание, оповещение про сбор коллекции
Или делал ради, сделать что бы заработало?
Да просто от балды
 
Назад
Сверху Снизу