ну я вот к примеру и в этрее не стал убирать динамические квесты/компании (хотя для меня это одно и то же - даже движок универсальный у меня для них) - зачем?
пусть не по оффу, но в клиенте поддержка их никуда не делась, так что пусть работают - лишним разнообразие в игре не будет.
ой блин там реализовывать то...
по сути один универсальный родительский класс, не очень большой, на несколько десятков кб и все в основном.
в итоге у меня почти все динамик квесты/компании выглядят примерно так:
маленький класс, объявляющий сам квест и указывающий данные под каким id брать из описаний квестов
Код:
package dynamic_quests;
import l2p.gameserver.model.dynamicquest.DynamicQuest;
public class _0001_DestroyTheDaemonAngma extends DynamicQuest
{
public _0001_DestroyTheDaemonAngma()
{
super(1);
}
}
и описание всех действий для него
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE list SYSTEM "dynamic_quest.dtd">
<list>
<quest id="1" name="Destroy the Daemon Angma" min_level="75">
<start>
<time pattern="0 11 * * 6" />
<time pattern="0 22 * * 6" />
</start>
<spawns>
<group name="_0001_DestroyTheDaemonAngma" />
</spawns>
<steps>
<step id="1" duration="30">
<tasks>
<task id="101" points="5000" />
</tasks>
<dialogs>
<dialog type="header" name="header" />
<dialog type="start" name="start" />
<dialog type="reject" name="reject" />
<dialog type="accept" name="context" />
<dialog type="failed" name="failed" />
<dialog type="finish" name="finish" />
<dialog type="reward" name="reward" />
<dialog type="reward_received" name="reward_received" />
</dialogs>
<targets>
<npc id="19086" points="2" /> <!-- Daemon Angma / Демон Гонца Тьмы -->
<npc id="19087" points="4" /> <!-- Daemon Angma Captain / Главный Демон Гонца Тьмы -->
</targets>
<rewards>
<reward id="33501" count="54" type="rank_1" /> <!-- Mark of the King / Знак Короля -->
<reward id="33501" count="18" type="rank_2" /> <!-- Mark of the King / Знак Короля -->
<reward id="33500" count="203" type="rank_3" /> <!-- Mark of Lords / Знак Лорда -->
<reward id="33500" count="87" type="others" /> <!-- Mark of Lords / Знак Лорда -->
</rewards>
</step>
</steps>
</quest>
</list>
и так выглядят большинство квестов, чисто в паре, типа орбиса, немного больше кода в классе.