actual freya branch

This commit is contained in:
2026-09-12 15:39:57 +00:00
parent 9fa534b20e
commit 8049e0a882
18540 changed files with 1228200 additions and 0 deletions
@@ -0,0 +1,7 @@
<html><body>Engineer Lekon:<br>
Airship, eh? If you want board an Airship, you need to first register for a Summon License. There's a switch on the Airship controls that proves your qualifications to summon and pilot it. Unless you obtain that license, you won't be allowed to fly.<br>
Only <font color="LEVEL">clan lords whose clan is level 5 or higher</font> may earn the license. There is also a limit on the number of Airships.<br>
If you meet the requirements, you can obtain a Airship Summon License in exchange for <font color="LEVEL">10 Energy Star Stones</font>. <br>
An Energy Star Stone can be made by assembling Star Stones found floating in the skies over Gracia. If you thinkk this is too time-consuming, you can also buy them from Officer Tolonis right over there..<br>
<a action="bypass -h Quest EngineerLekon license">Obtain the Airship Summon License.</a>
</body></html>
@@ -0,0 +1,7 @@
<html><body>Engineer Lekon:<br>
I'm too busy to take a breath! I'm supposed to maintain all these Airships and air vehicles by myself?! How does that make sense? <br>
And it's all very detailed, time-consuming work with no margin for error. Somebody up there must really hate me!<br>
Well, at least they supply me with the materials I need. Hey, adventurer! You must know how to use Airships or air vehicles. Care to lend me a hand?<br>
<a action="bypass -h Quest EngineerLekon 32557-1.htm">Ask about Airship Summon License.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
</body></html>
@@ -0,0 +1,92 @@
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package vehicles.EngineerLekon;
import com.l2jserver.gameserver.instancemanager.AirShipManager;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
public class EngineerLekon extends Quest
{
private static final int LEKON = 32557;
private static final int LICENSE = 13559;
private static final int STARSTONE = 13277;
private static final int LICENSE_COST = 10;
private static final SystemMessage SM_NEED_CLANLVL5 = SystemMessage.getSystemMessage(SystemMessageId.THE_AIRSHIP_NEED_CLANLVL_5_TO_SUMMON);
private static final SystemMessage SM_NO_PRIVS = SystemMessage.getSystemMessage(SystemMessageId.THE_AIRSHIP_NO_PRIVILEGES);
private static final SystemMessage SM_LICENSE_ALREADY_ACQUIRED = SystemMessage.getSystemMessage(SystemMessageId.THE_AIRSHIP_SUMMON_LICENSE_ALREADY_ACQUIRED);
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ("license".equalsIgnoreCase(event))
{
if (player.getClan() == null || player.getClan().getLevel() < 5)
{
player.sendPacket(SM_NEED_CLANLVL5);
return null;
}
if (!player.isClanLeader())
{
player.sendPacket(SM_NO_PRIVS);
return null;
}
if (AirShipManager.getInstance().hasAirShipLicense(player.getClanId()))
{
player.sendPacket(SM_LICENSE_ALREADY_ACQUIRED);
return null;
}
if (player.getInventory().getItemByItemId(LICENSE) != null)
{
player.sendPacket(SM_LICENSE_ALREADY_ACQUIRED);
return null;
}
if (!player.destroyItemByItemId("AirShipLicense", STARSTONE, LICENSE_COST, npc, true))
return null;
player.addItem("AirShipLicense", LICENSE, 1, npc, true);
return null;
}
else
return event;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
if (player.getQuestState(getName()) == null)
newQuestState(player);
return npc.getNpcId() + ".htm";
}
public EngineerLekon(int questId, String name, String descr)
{
super(questId, name, descr);
addStartNpc(LEKON);
addFirstTalkId(LEKON);
addTalkId(LEKON);
}
public static void main(String[] args)
{
new EngineerLekon(-1, EngineerLekon.class.getSimpleName(), "vehicles");
}
}