Нужна помощь с ошибкой Dominion_KillSpecialUnitQuest - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 06.10.2020, 19:37   #1
Пользователь

Автор темы (Топик Стартер) Нужна помощь с ошибкой Dominion_KillSpecialUnitQuest

Всем доброго дня! Посмотрел весь инет, у многих была такая же проблема 4-5 года назад, но решение данной проблемы никто не написал. Надеюсь кто знает поможет решить данную проблему.

При загрузке выводит данную проблему, как я понял квест относится к Территориальным войнам.

Код HTML:
ERROR Scripts: Failed running quests.Dominion_KillSpecialUnitQuest.onLoad()
java.lang.InstantiationException
        at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at l2p.gameserver.scripts.Scripts.init(Unknown Source)
        at l2p.gameserver.GameServer.<init>(Unknown Source)
        at l2p.gameserver.GameServer.main(Unknown Source)
Вот сам файл:
L2J\GameServer\data\scripts\quests\Dominion_KillSp ecialUnitQuest.java

Код HTML:
package quests;

import org.apache.commons.lang3.ArrayUtils;
import l2p.commons.util.Rnd;
import l2p.gameserver.data.xml.holder.EventHolder;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.base.ClassId;
import l2p.gameserver.model.entity.events.EventType;
import l2p.gameserver.model.entity.events.impl.DominionSiegeEvent;
import l2p.gameserver.model.entity.events.impl.DominionSiegeRunnerEvent;
import l2p.gameserver.model.quest.Quest;
import l2p.gameserver.model.quest.QuestState;
import l2p.gameserver.serverpackets.components.NpcString;
import l2p.gameserver.serverpackets.ExShowScreenMessage;
import static l2p.gameserver.model.entity.events.impl.DominionSiegeEvent.STATIC_BADGES;
import l2p.gameserver.scripts.ScriptFile;

public abstract class Dominion_KillSpecialUnitQuest extends Quest implements ScriptFile  {

    private final ClassId[] _classIds;

    public Dominion_KillSpecialUnitQuest() {
        super(PARTY_NONE);

        _classIds = getTargetClassIds();
        DominionSiegeRunnerEvent runnerEvent = EventHolder.getInstance().getEvent(EventType.MAIN_EVENT, 1);
        for (ClassId c : _classIds) {
            runnerEvent.addClassQuest(c, this);
        }
    }

    protected abstract NpcString startNpcString();

    protected abstract NpcString progressNpcString();

    protected abstract NpcString doneNpcString();

    protected abstract int getRandomMin();

    protected abstract int getRandomMax();

    protected abstract ClassId[] getTargetClassIds();

    @Override
    public String onKill(Player killed, QuestState qs) {
        Player player = qs.getPlayer();
        if (player == null) {
            return null;
        }

        if (qs.getState() == COMPLETED) {
            return null;
        }

        DominionSiegeEvent event1 = player.getEvent(DominionSiegeEvent.class);
        if (event1 == null) {
            return null;
        }
        DominionSiegeEvent event2 = killed.getEvent(DominionSiegeEvent.class);
        if (event2 == null || event2 == event1) {
            return null;
        }

        if (!ArrayUtils.contains(_classIds, killed.getClassId())) {
            return null;
        }

        int max_kills = qs.getInt("max_kills");
        if (max_kills == 0) {
            qs.setState(STARTED);
            qs.setCond(1);

            max_kills = Rnd.get(getRandomMin(), getRandomMax());
            qs.set("max_kills", max_kills);
            qs.set("current_kills", 1);

            player.sendPacket(new ExShowScreenMessage(startNpcString(), 2000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true, false, String.valueOf(max_kills)));
        } else {
            int current_kills = qs.getInt("current_kills") + 1;
            if (current_kills >= max_kills) {
                event1.addReward(player, STATIC_BADGES, 10);

                qs.setState(COMPLETED);
                qs.addExpAndSp(534000, 51000);
                qs.exitCurrentQuest(true);

                player.sendPacket(new ExShowScreenMessage(doneNpcString(), 2000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true, false));
            } else {
                qs.set("current_kills", current_kills);
                player.sendPacket(new ExShowScreenMessage(progressNpcString(), 2000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true, false, String.valueOf(max_kills), String.valueOf(current_kills)));
            }
        }

        return null;
    }

    @Override
    public boolean canAbortByPacket() {
        return false;
    }
}
RuSmith вне форума Ответить с цитированием
Непрочитано 12.10.2020, 12:36   #2
Пользователь

По умолчанию Re: Нужна помощь с ошибкой Dominion_KillSpecialUnitQuest

скорее всего нет конструктора по умолчанию аля:
 
public Dominion_KillSpecialUnitQuest(){
}
 
Code: Java
DOBA вне форума Отправить сообщение для DOBA с помощью ICQ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dominion_Killspecialunitquest BORDIR Работа со скриптами 0 26.03.2014 14:05
Нужна помощь DeG Архив 0 13.06.2013 18:34
мне Нужна помощь NewHumaneasy Создание карт 15 28.12.2011 19:57
Нужна помощь по НПС licei Lineage II 0 08.01.2011 01:44
Нужна помощь Kabanitos Курилка / Yak floor 9 07.01.2011 01:28


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 14:18. Часовой пояс GMT +3.

Вверх