Осада Замка
Приветствую Вас, Дамы и Господа.
Помогите разобраться, где я допускаю ошибку в данной проверке. Коротко поясню все, что требуется знать - у меня L2j Freya, getSpiritId - это значение в таблице чаров ( int ) от 1 до 3х. В Код:
public void registerAttacker(L2PcInstance player, boolean force) Код:
int attackclanwrite = 0; Код:
allyId = ClanTable.getInstance().getClan(getCastle().getOwnerId()).getAllyId(); Компилит IDEA без ошибок, но вот при записи на осаду выдает такое : Код:
SEVERE: Client: [Character: Amiel[268479794] - Account: aaron - IP: 127.0.0.1] - Failed running: [C] a4 RequestJoinSiege - L2J Server Version: ${l2j.revision} - DP Revision: ${l2jdp.revision} ; null Прошу помочь найти верное решение, мною поставленной цели. С уважением, Аарон. |
Re: Осада Замка
переведите java.lang.NullPointerException на русский и все станет понятно
|
Re: Осада Замка
Гугл Транслейт "говорит" такой перевод - "Исключение нулевого указателя"
Я так понимаю, что возвращается нулевое значение либо он вообще не находит какого-либо значения ? Прошу прощения, не очень силен в ошибках Java. |
Re: Осада Замка
все правильно... возвращается нулевое значение...
варианты решения 1. сделать проверку на null 2. копать то что вы написали на наличие ошибок в коде, вдруг вы где-то ошиблись и у вас все время получается нулевое значение... |
Re: Осада Замка
Скорей всего второе, ибо все SpiritId имеют значение от 1 до 3х.
Возможно вот так будет более верно ? Код:
L2PcInstance attackclanwrite = null; |
Re: Осада Замка
значение SpiritId из бд правильно берете?
сделайте diff чтобы было видно что добавлено:) |
Re: Осада Замка
рассмотрите внимательно эту строку.
attackclanwrite = ClanTable.getInstance().getClan(getCastle().getOwn erId()).getLeader().getPlayerInstance().getSpiritI d(); если у замка нет владельца getCastle().getOwnerId() то тут будет скорее всего 0 и соответственно клан с ID 0 yе будет найден. а раз ClanTable.getInstance().getClan(0) = NULL Null.getLeader() то при попытке получить лидера клана вызовет вашу NullPointerException проверяйте сначала есть ли в принципе владелец у замка, а уже потом получайте данные клана. |
Re: Осада Замка
Господа, спасибо, что стараетесь помочь.
В общем я сделал так : Код:
L2PcInstance attackclanwrite = null; То, что getSpiritId извлекается из базы верно - я уверен, ибо уже делал с этой таблицей много наработок. Я попробовал сделать такую проверку : Код:
if (attackclanwrite == null) Возможно, господа, я не правильно выстроил логическую цепочку в attackclanwrite ? Просто мне нужно изъять у лидера клана, владеющего замком, его getSpiritId() из таблицы "characters". С уважением, Аарон. Добавлено через 4 часа 33 минуты up. Господа, помогите пожалуйста выстроить эту логическую цепочку. |
Текущее время: 21:28. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot