[EN] Added a new event that allows the player to operate at will upon completion of the quest. For example, I am attaching a code for issuing 1 Adena and launching fireworks about the completion of the Letter of Love quest. I abandoned the old listener system so as not to produce heaps of code and not hardcode them
I attach the code below
[RU] Добавил новый ивент который позволяет по своему желанию оперировать игроком при завершении квеста. К примеру прикладываю код выдачи 1 Адены и запуск фейерверка об завершении квеста Letter of Love. Вы же можете добавлять какие угодно механики и дополнения. Я отказался от старой системы листенеров, чтобы не плодить кучи кода и хардкодить.
Код прикладываю ниже
I attach the code below
[RU] Добавил новый ивент который позволяет по своему желанию оперировать игроком при завершении квеста. К примеру прикладываю код выдачи 1 Адены и запуск фейерверка об завершении квеста Letter of Love. Вы же можете добавлять какие угодно механики и дополнения. Я отказался от старой системы листенеров, чтобы не плодить кучи кода и хардкодить.
Код прикладываю ниже
Java:
package services;
import l2.commons.listener.EventListener;
import l2.gameserver.GameServer;
import l2.gameserver.model.Player;
import l2.gameserver.model.quest.Quest;
import l2.gameserver.network.l2.s2c.MagicSkillUse;
import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import l2.gameserver.utils.ItemFunctions;
public class QuestServices extends Functions implements ScriptFile, EventListener
{
private static final String EVENT_FINISH_QUEST = "onQuestFinish";
private static final String[] LISTENING_EVENTS = new String[]{EVENT_FINISH_QUEST};
private static final int LETTER_OF_LOVE_QUEST_ID = 1;
@Override
public String[] listeningEventTypes()
{
return LISTENING_EVENTS;
}
private void onQuestLetterOfLoveFinish(Player player, Quest quest, Boolean aborted)
{
if(quest != null && !aborted && quest.getQuestIntId() == LETTER_OF_LOVE_QUEST_ID)
{
ItemFunctions.addItem(player, 57, 1, true);
player.broadcastPacket(new MagicSkillUse(player, player, 2025, 1, 500, 1500));
}
}
@Override
public void onEvent(String eventType, Object... args)
{
if(eventType.equals(EVENT_FINISH_QUEST))
{
onQuestLetterOfLoveFinish((Player) args[0], (Quest) args[1], (Boolean) args[2]);
}
}
@Override
public void onLoad()
{
GameServer.getInstance().getListeners().addEventListener(this);
}
@Override
public void onReload()
{
}
@Override
public void onShutdown()
{
}
}
Last edited: