From 51eeb39e7ceea1f68de7b4407cad950a24674aae Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Sat, 6 Nov 2021 00:48:03 +0000
Subject: [PATCH] Einhasad's Store additions. Contributed by Index.
---
.../dist/game/data/multisell/34487001.xml | 62 +++++++++
.../dist/game/data/multisell/34487002.xml | 42 ++++++
.../dist/game/data/multisell/34487003.xml | 34 +++++
.../dist/game/data/multisell/34487004.xml | 54 ++++++++
.../dist/game/data/multisell/34487005.xml | 70 ++++++++++
.../dist/game/data/multisell/34487006.xml | 54 ++++++++
.../ai/others/EinhasadStore/34487.html | 48 +++++++
.../others/EinhasadStore/EinhasadStore.java | 125 ++++++++++++++++++
.../network/clientpackets/ExOpenHtml.java | 41 +++++-
.../dist/game/data/multisell/34487001.xml | 62 +++++++++
.../dist/game/data/multisell/34487002.xml | 42 ++++++
.../dist/game/data/multisell/34487003.xml | 34 +++++
.../dist/game/data/multisell/34487004.xml | 54 ++++++++
.../dist/game/data/multisell/34487005.xml | 70 ++++++++++
.../dist/game/data/multisell/34487006.xml | 54 ++++++++
.../ai/others/EinhasadStore/34487.html | 48 +++++++
.../others/EinhasadStore/EinhasadStore.java | 125 ++++++++++++++++++
.../network/clientpackets/ExOpenHtml.java | 41 +++++-
.../network/clientpackets/ExOpenHtml.java | 35 ++++-
.../network/clientpackets/ExOpenHtml.java | 35 ++++-
20 files changed, 1116 insertions(+), 14 deletions(-)
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487001.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487002.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487003.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487004.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487005.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487006.xml
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487001.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487002.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487003.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487004.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487005.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487006.xml
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487001.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487001.xml
new file mode 100644
index 0000000000..6b8719c8e3
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487001.xml
@@ -0,0 +1,62 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487002.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487002.xml
new file mode 100644
index 0000000000..82ef31b460
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487002.xml
@@ -0,0 +1,42 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487003.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487003.xml
new file mode 100644
index 0000000000..fc29c4b6b4
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487003.xml
@@ -0,0 +1,34 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487004.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487004.xml
new file mode 100644
index 0000000000..8b5bbd3a44
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487004.xml
@@ -0,0 +1,54 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487005.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487005.xml
new file mode 100644
index 0000000000..fd373c2676
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487005.xml
@@ -0,0 +1,70 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487006.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487006.xml
new file mode 100644
index 0000000000..c849a8deab
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/multisell/34487006.xml
@@ -0,0 +1,54 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/34487.html b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
new file mode 100644
index 0000000000..0c2b7f8f33
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
@@ -0,0 +1,48 @@
+
Einhasad Store
+
+
+
+
+
+ |
+ May the Power of Light guide your way! |
+ |
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+
+ |
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
new file mode 100644
index 0000000000..418dfdf596
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
@@ -0,0 +1,125 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * 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 .
+ */
+package ai.others.EinhasadStore;
+
+import org.l2jmobius.gameserver.cache.HtmCache;
+import org.l2jmobius.gameserver.data.xml.MultisellData;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.events.EventType;
+import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
+import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
+import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
+import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass;
+import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author Index
+ */
+public class EinhasadStore extends AbstractNpcAI
+{
+ // NPC
+ private static final int MERCHANT = 34487;
+ // Multisells
+ private static final int JEWELS_STONE = 34487001;
+ private static final int ACCESSORIES = 34487002;
+ private static final int SCROLLS = 34487003;
+ private static final int ENHANCEMENT = 34487004;
+ private static final int OTHER = 34487005;
+ private static final int CLOAK = 34487006;
+ // Others
+ private static final String COMMAND_BYPASS = "Quest EinhasadStore ";
+
+ private EinhasadStore()
+ {
+ addStartNpc(MERCHANT);
+ addFirstTalkId(MERCHANT);
+ addTalkId(MERCHANT);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final String htmltext = null;
+ switch (event)
+ {
+
+ case "back":
+ {
+ player.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/34487.html")));
+ break;
+ }
+ // Bypass
+ case "Chat_Jewell_Stones":
+ {
+ MultisellData.getInstance().separateAndSend(JEWELS_STONE, player, null, false);
+ break;
+ }
+ case "Chat_Accessories":
+ {
+ MultisellData.getInstance().separateAndSend(ACCESSORIES, player, null, false);
+ break;
+ }
+ case "Chat_Scrolls":
+ {
+ MultisellData.getInstance().separateAndSend(SCROLLS, player, null, false);
+ break;
+ }
+ case "Chat_Enhancement":
+ {
+ MultisellData.getInstance().separateAndSend(ENHANCEMENT, player, null, false);
+ break;
+ }
+ case "Chat_Others":
+ {
+ MultisellData.getInstance().separateAndSend(OTHER, player, null, false);
+ break;
+ }
+ case "Chat_Cloak":
+ {
+ MultisellData.getInstance().separateAndSend(CLOAK, player, null, false);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onFirstTalk(Npc npc, PlayerInstance player)
+ {
+ player.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/34487.html")));
+ return null;
+ }
+
+ @RegisterEvent(EventType.ON_PLAYER_BYPASS)
+ @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
+ public void onPlayerBypass(OnPlayerBypass event)
+ {
+ final PlayerInstance player = event.getPlayer();
+ if (event.getCommand().startsWith(COMMAND_BYPASS))
+ {
+ notifyEvent(event.getCommand().replace(COMMAND_BYPASS, ""), null, player);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ new EinhasadStore();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
index c287dece27..23656df92e 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
@@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
+import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
+import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/**
@@ -27,10 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
*/
public class ExOpenHtml implements IClientIncomingPacket
{
+ private int _type;
+
@Override
public boolean read(GameClient client, PacketReader packet)
{
- packet.readC(); // html scope?
+ _type = packet.readC();
return true;
}
@@ -38,11 +42,38 @@ public class ExOpenHtml implements IClientIncomingPacket
public void run(GameClient client)
{
final PlayerInstance player = client.getPlayer();
- if ((player != null) && Config.PC_CAFE_ENABLED)
+ if (player == null)
{
- final NpcHtmlMessage html = new NpcHtmlMessage();
- html.setFile(player, "data/html/pccafe.htm");
- player.sendPacket(html);
+ return;
+ }
+
+ switch (_type)
+ {
+ case 1:
+ {
+ if (Config.PC_CAFE_ENABLED)
+ {
+ final NpcHtmlMessage html = new NpcHtmlMessage();
+ html.setFile(player, "data/html/pccafe.htm");
+ player.sendPacket(html);
+ }
+ break;
+ }
+ case 5:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ break;
+ }
+ case 7:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/32477.html")));
+ break;
+ }
+ default:
+ {
+ LOGGER.warning("Unknown ExOpenHtml type (" + _type + ")");
+ break;
+ }
}
}
}
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487001.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487001.xml
new file mode 100644
index 0000000000..6b8719c8e3
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487001.xml
@@ -0,0 +1,62 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487002.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487002.xml
new file mode 100644
index 0000000000..82ef31b460
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487002.xml
@@ -0,0 +1,42 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487003.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487003.xml
new file mode 100644
index 0000000000..fc29c4b6b4
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487003.xml
@@ -0,0 +1,34 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487004.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487004.xml
new file mode 100644
index 0000000000..8b5bbd3a44
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487004.xml
@@ -0,0 +1,54 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487005.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487005.xml
new file mode 100644
index 0000000000..fd373c2676
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487005.xml
@@ -0,0 +1,70 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487006.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487006.xml
new file mode 100644
index 0000000000..c849a8deab
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/multisell/34487006.xml
@@ -0,0 +1,54 @@
+
+
+
+ -1
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/34487.html b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
new file mode 100644
index 0000000000..0c2b7f8f33
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/34487.html
@@ -0,0 +1,48 @@
+Einhasad Store
+
+
+
+
+
+ |
+ May the Power of Light guide your way! |
+ |
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+ |
+
+ |
+
+ |
+
+ |
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
new file mode 100644
index 0000000000..418dfdf596
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/others/EinhasadStore/EinhasadStore.java
@@ -0,0 +1,125 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * 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 .
+ */
+package ai.others.EinhasadStore;
+
+import org.l2jmobius.gameserver.cache.HtmCache;
+import org.l2jmobius.gameserver.data.xml.MultisellData;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.events.EventType;
+import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
+import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
+import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
+import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass;
+import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author Index
+ */
+public class EinhasadStore extends AbstractNpcAI
+{
+ // NPC
+ private static final int MERCHANT = 34487;
+ // Multisells
+ private static final int JEWELS_STONE = 34487001;
+ private static final int ACCESSORIES = 34487002;
+ private static final int SCROLLS = 34487003;
+ private static final int ENHANCEMENT = 34487004;
+ private static final int OTHER = 34487005;
+ private static final int CLOAK = 34487006;
+ // Others
+ private static final String COMMAND_BYPASS = "Quest EinhasadStore ";
+
+ private EinhasadStore()
+ {
+ addStartNpc(MERCHANT);
+ addFirstTalkId(MERCHANT);
+ addTalkId(MERCHANT);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final String htmltext = null;
+ switch (event)
+ {
+
+ case "back":
+ {
+ player.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/34487.html")));
+ break;
+ }
+ // Bypass
+ case "Chat_Jewell_Stones":
+ {
+ MultisellData.getInstance().separateAndSend(JEWELS_STONE, player, null, false);
+ break;
+ }
+ case "Chat_Accessories":
+ {
+ MultisellData.getInstance().separateAndSend(ACCESSORIES, player, null, false);
+ break;
+ }
+ case "Chat_Scrolls":
+ {
+ MultisellData.getInstance().separateAndSend(SCROLLS, player, null, false);
+ break;
+ }
+ case "Chat_Enhancement":
+ {
+ MultisellData.getInstance().separateAndSend(ENHANCEMENT, player, null, false);
+ break;
+ }
+ case "Chat_Others":
+ {
+ MultisellData.getInstance().separateAndSend(OTHER, player, null, false);
+ break;
+ }
+ case "Chat_Cloak":
+ {
+ MultisellData.getInstance().separateAndSend(CLOAK, player, null, false);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onFirstTalk(Npc npc, PlayerInstance player)
+ {
+ player.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/34487.html")));
+ return null;
+ }
+
+ @RegisterEvent(EventType.ON_PLAYER_BYPASS)
+ @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
+ public void onPlayerBypass(OnPlayerBypass event)
+ {
+ final PlayerInstance player = event.getPlayer();
+ if (event.getCommand().startsWith(COMMAND_BYPASS))
+ {
+ notifyEvent(event.getCommand().replace(COMMAND_BYPASS, ""), null, player);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ new EinhasadStore();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
index c287dece27..23656df92e 100644
--- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
+++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
@@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
+import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
+import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/**
@@ -27,10 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
*/
public class ExOpenHtml implements IClientIncomingPacket
{
+ private int _type;
+
@Override
public boolean read(GameClient client, PacketReader packet)
{
- packet.readC(); // html scope?
+ _type = packet.readC();
return true;
}
@@ -38,11 +42,38 @@ public class ExOpenHtml implements IClientIncomingPacket
public void run(GameClient client)
{
final PlayerInstance player = client.getPlayer();
- if ((player != null) && Config.PC_CAFE_ENABLED)
+ if (player == null)
{
- final NpcHtmlMessage html = new NpcHtmlMessage();
- html.setFile(player, "data/html/pccafe.htm");
- player.sendPacket(html);
+ return;
+ }
+
+ switch (_type)
+ {
+ case 1:
+ {
+ if (Config.PC_CAFE_ENABLED)
+ {
+ final NpcHtmlMessage html = new NpcHtmlMessage();
+ html.setFile(player, "data/html/pccafe.htm");
+ player.sendPacket(html);
+ }
+ break;
+ }
+ case 5:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ break;
+ }
+ case 7:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/32477.html")));
+ break;
+ }
+ default:
+ {
+ LOGGER.warning("Unknown ExOpenHtml type (" + _type + ")");
+ break;
+ }
}
}
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
index 09863516ec..2bd1cafe25 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
@@ -16,21 +16,25 @@
*/
package org.l2jmobius.gameserver.network.clientpackets;
+import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
+import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/**
* @author Mobius
*/
public class ExOpenHtml implements IClientIncomingPacket
{
+ private int _type;
+
@Override
public boolean read(GameClient client, PacketReader packet)
{
- packet.readC(); // html scope?
+ _type = packet.readC();
return true;
}
@@ -43,6 +47,33 @@ public class ExOpenHtml implements IClientIncomingPacket
return;
}
- client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ switch (_type)
+ {
+ case 1:
+ {
+ if (Config.PC_CAFE_ENABLED)
+ {
+ final NpcHtmlMessage html = new NpcHtmlMessage();
+ html.setFile(player, "data/html/pccafe.htm");
+ player.sendPacket(html);
+ }
+ break;
+ }
+ case 5:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ break;
+ }
+ // case 7:
+ // {
+ // client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/32477.html")));
+ // break;
+ // }
+ default:
+ {
+ LOGGER.warning("Unknown ExOpenHtml type (" + _type + ")");
+ break;
+ }
+ }
}
}
diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
index 09863516ec..2bd1cafe25 100644
--- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
+++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenHtml.java
@@ -16,21 +16,25 @@
*/
package org.l2jmobius.gameserver.network.clientpackets;
+import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.serverpackets.ExPremiumManagerShowHtml;
+import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/**
* @author Mobius
*/
public class ExOpenHtml implements IClientIncomingPacket
{
+ private int _type;
+
@Override
public boolean read(GameClient client, PacketReader packet)
{
- packet.readC(); // html scope?
+ _type = packet.readC();
return true;
}
@@ -43,6 +47,33 @@ public class ExOpenHtml implements IClientIncomingPacket
return;
}
- client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ switch (_type)
+ {
+ case 1:
+ {
+ if (Config.PC_CAFE_ENABLED)
+ {
+ final NpcHtmlMessage html = new NpcHtmlMessage();
+ html.setFile(player, "data/html/pccafe.htm");
+ player.sendPacket(html);
+ }
+ break;
+ }
+ case 5:
+ {
+ client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/GameAssistant/32478.html")));
+ break;
+ }
+ // case 7:
+ // {
+ // client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/EinhasadStore/32477.html")));
+ // break;
+ // }
+ default:
+ {
+ LOGGER.warning("Unknown ExOpenHtml type (" + _type + ")");
+ break;
+ }
+ }
}
}