Перейти к содержанию
Авторизация  
RuSmith

Нужна помощь с ошибкой Dominion_KillSpecialUnitQuest

Рекомендуемые сообщения

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

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

Спойлер

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_KillSpecialUnitQuest.java

Спойлер

 

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;
    }
}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата

public class InstantiationException extends ReflectiveOperationException

Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated. The instantiation can fail for a variety of reasons including but not limited to:

  • the class object represents an abstract class, an interface, an array class, a primitive type, or void
  • the class has no nullary constructor

https://docs.oracle.com/javase/7/docs/api/java/lang/InstantiationException.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Akumu сказал:

спасибо за ответ, вроде что-то на языке кодеров написано

к сожалению, я пока не кодер(

а можно на языке чайников, "скопируй это и поставь сюда и сохрани"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Абстрагируйся и пойми решение. Оно же на блюдечке с голубой каемочкой. Дальше этой проблемы только search ctrlc ctrlv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...