From 25e5b105f12d20847c7b1e66a68b770605caa0a0 Mon Sep 17 00:00:00 2001 From: St3eT <St3eT@users.noreply.github.com> Date: Sat, 8 Feb 2014 22:57:46 +0000 Subject: [PATCH] BETA: Reworking '''Castle Court Magician''' from core to datapack. * Reviewed by: Adry_85, Zoey76, !UnAfraid --- .../data/html/castlemagician/magician-1.htm | 6 - .../data/html/castlemagician/magician-2.htm | 11 - .../html/castlemagician/magician-busy.htm | 3 - .../html/castlemagician/magician-no-KE.htm | 4 - .../data/html/castlemagician/magician-no.htm | 3 - .../html/castlemagician/magician-nosquad.htm | 3 - L2J_DataPack_BETA/dist/game/data/scripts.cfg | 1 + .../CastleCourtMagician.java | 327 ++++++++++++++++++ .../CastleCourtMagician/courtmagician-01.html | 3 + .../courtmagician-02.html} | 2 +- .../CastleCourtMagician/courtmagician-03.html | 6 + .../courtmagician-04.html} | 2 +- .../CastleCourtMagician/courtmagician-05.html | 3 + .../CastleCourtMagician/courtmagician-06.html | 4 + .../CastleCourtMagician/courtmagician.html} | 12 +- L2J_DataPack_BETA/dist/sql/game/npc.sql | 18 +- 16 files changed, 361 insertions(+), 47 deletions(-) delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-1.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-2.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-busy.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no-KE.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nosquad.htm create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-01.html rename L2J_DataPack_BETA/dist/game/data/{html/castlemagician/magician-nogate.htm => scripts/ai/npc/CastleCourtMagician/courtmagician-02.html} (79%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-03.html rename L2J_DataPack_BETA/dist/game/data/{html/castlemagician/magician-KE-Exchange.htm => scripts/ai/npc/CastleCourtMagician/courtmagician-04.html} (68%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-05.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-06.html rename L2J_DataPack_BETA/dist/game/data/{html/castlemagician/magician.htm => scripts/ai/npc/CastleCourtMagician/courtmagician.html} (58%) diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-1.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-1.htm deleted file mode 100644 index 07f9e5dba8..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-1.htm +++ /dev/null @@ -1,6 +0,0 @@ -<html><body> -The talisman is both magical and mysterious. Once applied to your bracelet, you will be able to see its surprising effect for yourself. Before I can give it to you, however, you must must prove to me that you are capable of responsibly wielding such power. Give me <font color="#ffff00">10 Knight's Epaulettes</font> and i will provide you the talisman.<br><br> -<center> -<a action="bypass -h npc_%objectId%_ExchangeKE">Give Knight's Epaulettes</a> -</center> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-2.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-2.htm deleted file mode 100644 index 7843ce831f..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-2.htm +++ /dev/null @@ -1,11 +0,0 @@ -<html><body> -Magic is intertwined with the very fabric of our world, affecting not only large-scale events like wars but also mundane tasks of daily life.<br><br> -<center> -<a action="bypass -h npc_%objectId%_multisell 90002001">Purchase necessary items.</a><br> -<a action="bypass -h npc_%objectId%_multisell 90002002">Purchase bracelet.</a><br> -<a action="bypass -h npc_%objectId%_multisell 90002003">Purchase shirt</a><br> -<a action="bypass -h npc_%objectId%_exc_multisell 90002004">Trade with enchanted shirt.</a><br> -<a action="bypass -h npc_%objectId%_Chat 1">Obtain Talisman.</a><br> -<a action="bypass -h npc_%objectId%_subskills">Learn special skills for low-ranked soldiers.</a> -</center> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-busy.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-busy.htm deleted file mode 100644 index 56bd7ded84..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-busy.htm +++ /dev/null @@ -1,3 +0,0 @@ -<html><body> -Oh! Our castle is being attacked and I can't do anything for you right now. -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no-KE.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no-KE.htm deleted file mode 100644 index 67b4bced8e..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no-KE.htm +++ /dev/null @@ -1,4 +0,0 @@ -<html><body> -You do not have enough knight's Epaulettes.<br> -<a action="bypass -h npc_%objectId%_Link castlemagician/magician-2.htm">Back.</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no.htm deleted file mode 100644 index c256b9a086..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-no.htm +++ /dev/null @@ -1,3 +0,0 @@ -<html><body>Court Magician:<br> -Leave me alone! I'm very busy! -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nosquad.htm b/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nosquad.htm deleted file mode 100644 index 206ce107f6..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nosquad.htm +++ /dev/null @@ -1,3 +0,0 @@ -<html><body>Court Magician:<br> -You are not a clan leader. -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg index c359d61b90..edcf985050 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg +++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg @@ -18,6 +18,7 @@ ai/npc/AvantGarde/AvantGarde.java ai/npc/BlackJudge/BlackJudge.java ai/npc/BlackMarketeerOfMammon/BlackMarketeerOfMammon.java ai/npc/CastleBlacksmith/CastleBlacksmith.java +ai/npc/CastleCourtMagician/CastleCourtMagician.java ai/npc/CastleChamberlain/CastleChamberlain.java ai/npc/CastleMercenaryManager/CastleMercenaryManager.java ai/npc/CastleTeleporter/CastleTeleporter.java diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java new file mode 100644 index 0000000000..cf3b8666f3 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java @@ -0,0 +1,327 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack 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. + * + * L2J DataPack 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 ai.npc.CastleCourtMagician; + +import java.util.List; + +import ai.npc.AbstractNpcAI; + +import com.l2jserver.gameserver.datatables.SkillTable; +import com.l2jserver.gameserver.datatables.SkillTreesData; +import com.l2jserver.gameserver.model.L2Clan; +import com.l2jserver.gameserver.model.L2SkillLearn; +import com.l2jserver.gameserver.model.actor.L2Npc; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.base.AcquireSkillType; +import com.l2jserver.gameserver.model.holders.SkillHolder; +import com.l2jserver.gameserver.network.SystemMessageId; +import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList; + +import handlers.effecthandlers.CallPc; + +/** + * Castle Court Magician AI. + * @author St3eT + */ +public final class CastleCourtMagician extends AbstractNpcAI +{ + // NPCs + private static final int[] COURT_MAGICIAN = + { + 35648, // Gludio + 35649, // Dion + 35650, // Giran + 35651, // Oren + 35652, // Aden + 35653, // Innadril + 35654, // Goddard + 35655, // Rune + 35656, // Schuttgard + }; + // Skills + private static final int CLAN_GATE = 3632; // Clan Gate + private static final SkillHolder DISPLAY_CLAN_GATE = new SkillHolder(5109, 1); // Production - Clan Gate + // Items + private static final int EPAULETTE = 9912; // Knight's Epaulette + private static final int RED_MEDITATION = 9931; // Red Talisman of Meditation + private static final int BLUE_DIV_PROTECTION = 9932; // Blue Talisman - Divine Protection + private static final int BLUE_EXPLOSION = 10416; // Blue Talisman - Explosion + private static final int BLUE_M_EXPLOSION = 10417; // Blue Talisman - Magic Explosion + private static final int RED_MIN_CLARITY = 9917; // Red Talisman of Minimum Clarity + private static final int RED_MAX_CLARITY = 9918; // Red Talisman of Maximum Clarity + private static final int RED_MENTAL_REG = 9928; // Red Talisman of Mental Regeneration + private static final int BLUE_PROTECTION = 9929; // Blue Talisman of Protection + private static final int BLUE_INVIS = 9920; // Blue Talisman of Invisibility + private static final int BLUE_DEFENSE = 9916; // Blue Talisman of Defense + private static final int BLACK_ESCAPE = 9923; // Black Talisman - Escape + private static final int BLUE_HEALING = 9924; // Blue Talisman of Healing + private static final int RED_RECOVERY = 9925; // Red Talisman of Recovery + private static final int BLUE_DEFENSE2 = 9926; // Blue Talisman of Defense + private static final int BLUE_M_DEFENSE = 9927; // Blue Talisman of Magic Defense + private static final int RED_LIFE_FORCE = 10518; // Red Talisman - Life Force + private static final int BLUE_GREAT_HEAL = 10424; // Blue Talisman - Greater Healing + private static final int WHITE_FIRE = 10421; // White Talisman - Fire + private static final int[] COMMON_TALISMANS = + { + 9914, // Blue Talisman of Power + 9915, // Blue Talisman of Wild Magic + 9920, // Blue Talisman of Invisibility + 9921, // Blue Talisman - Shield Protection + 9922, // Black Talisman - Mending + 9933, // Yellow Talisman of Power + 9934, // Yellow Talisman of Violent Haste + 9935, // Yellow Talisman of Arcane Defense + 9936, // Yellow Talisman of Arcane Power + 9937, // Yellow Talisman of Arcane Haste + 9938, // Yellow Talisman of Accuracy + 9939, // Yellow Talisman of Defense + 9940, // Yellow Talisman of Alacrity + 9941, // Yellow Talisman of Speed + 9942, // Yellow Talisman of Critical Reduction + 9943, // Yellow Talisman of Critical Damage + 9944, // Yellow Talisman of Critical Dodging + 9945, // Yellow Talisman of Evasion + 9946, // Yellow Talisman of Healing + 9947, // Yellow Talisman of CP Regeneration + 9948, // Yellow Talisman of Physical Regeneration + 9949, // Yellow Talisman of Mental Regeneration + 9950, // Grey Talisman of Weight Training + 9952, // Orange Talisman - Hot Springs CP Potion + 9953, // Orange Talisman - Elixir of Life + 9954, // Orange Talisman - Elixir of Mental Strength + 9955, // Black Talisman - Vocalization + 9956, // Black Talisman - Arcane Freedom + 9957, // Black Talisman - Physical Freedom + 9958, // Black Talisman - Rescue + 9959, // Black Talisman - Free Speech + 9960, // White Talisman of Bravery + 9961, // White Talisman of Motion + 9962, // White Talisman of Grounding + 9963, // White Talisman of Attention + 9964, // White Talisman of Bandages + 9965, // White Talisman of Protection + 10418, // White Talisman - Storm + 10420, // White Talisman - Water + 10519, // White Talisman - Earth + 10422, // White Talisman - Light + 10423, // Blue Talisman - Self-Destruction + 10419, // White Talisman - Darkness + }; + + private CastleCourtMagician() + { + super(CastleCourtMagician.class.getSimpleName(), "ai/npc"); + addStartNpc(COURT_MAGICIAN); + addTalkId(COURT_MAGICIAN); + addFirstTalkId(COURT_MAGICIAN); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + if (player.getClanId() != npc.getCastle().getOwnerId()) + { + return "courtmagician-01.html"; + } + + String htmltext = null; + int itemId = 0; + switch (event) + { + case "courtmagician.html": + case "courtmagician-03.html": + { + htmltext = event; + break; + } + case "giveTalisman": + { + if (getQuestItemsCount(player, EPAULETTE) < 10) + { + htmltext = "courtmagician-06.html"; + break; + } + + final int categoryChance = getRandom(100); + if (categoryChance <= 5) + { + final int chance = getRandom(100); + if (chance <= 25) + { + itemId = RED_MEDITATION; + } + else if (chance <= 50) + { + itemId = BLUE_DIV_PROTECTION; + } + else if (chance <= 75) + { + itemId = BLUE_EXPLOSION; + } + else + { + itemId = BLUE_M_EXPLOSION; + } + } + else if (categoryChance <= 15) + { + final int chance = getRandom(100); + if (chance <= 20) + { + itemId = RED_MIN_CLARITY; + } + else if (chance <= 40) + { + itemId = RED_MAX_CLARITY; + } + else if (chance <= 60) + { + itemId = RED_MENTAL_REG; + } + else if (chance <= 80) + { + itemId = BLUE_PROTECTION; + } + else + { + itemId = BLUE_INVIS; + } + } + else if (categoryChance <= 30) + { + final int chance = getRandom(100); + if (chance <= 12) + { + itemId = BLUE_DEFENSE; + } + else if (chance <= 25) + { + itemId = BLACK_ESCAPE; + } + else if (chance <= 37) + { + itemId = BLUE_HEALING; + } + else if (chance <= 50) + { + itemId = RED_RECOVERY; + } + else if (chance <= 62) + { + itemId = BLUE_DEFENSE2; + } + else if (chance <= 75) + { + itemId = BLUE_M_DEFENSE; + } + else if (chance <= 87) + { + itemId = RED_LIFE_FORCE; + } + else + { + itemId = BLUE_GREAT_HEAL; + } + } + else + { + final int chance = getRandom(46); + if (chance <= 43) + { + itemId = COMMON_TALISMANS[getRandom(chance)]; + } + else + { + itemId = WHITE_FIRE; + } + } + takeItems(player, EPAULETTE, 10); + giveItems(player, itemId, 1); + htmltext = "courtmagician-04.html"; + break; + } + case "squadSkill": + { + if (player.isClanLeader() || player.hasClanPrivilege(L2Clan.CP_CL_TROOPS_FAME)) + { + final List<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSubPledgeSkills(player.getClan()); + final AcquireSkillList asl = new AcquireSkillList(AcquireSkillType.SUBPLEDGE); + int count = 0; + + for (L2SkillLearn s : skills) + { + if (SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()) != null) + { + asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getLevelUpSp(), 0); + ++count; + } + } + + if (count == 0) + { + player.sendPacket(SystemMessageId.NO_MORE_SKILLS_TO_LEARN); + } + else + { + player.sendPacket(asl); + } + } + else + { + htmltext = "courtmagician-05.html"; + } + break; + } + case "clanTeleport": + { + if (player.getClanId() == npc.getCastle().getOwnerId()) + { + final L2PcInstance clanLeader = player.getClan().getLeader().getPlayerInstance(); + + if ((clanLeader != null) && clanLeader.isAffectedBySkill(CLAN_GATE)) + { + if (CallPc.checkSummonTargetStatus(clanLeader, player)) // TODO: Custom one, retail dont check it but for sure lets check same conditions like when summon player by skill. + { + npc.setTarget(player); + npc.doCast(DISPLAY_CLAN_GATE.getSkill()); + player.teleToLocation(clanLeader.getLocation(), true); + } + } + else + { + htmltext = "courtmagician-02.html"; + } + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return (player.getClanId() == npc.getCastle().getOwnerId()) ? "courtmagician.html" : "courtmagician-01.html"; + } + + public static void main(String[] args) + { + new CastleCourtMagician(); + } +} \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-01.html new file mode 100644 index 0000000000..b26274a3ff --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-01.html @@ -0,0 +1,3 @@ +<html><body>Court Magician:<br> +Can't you see that I am busy? If you continue to bother me, I will turn you into a frog!<br><br> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nogate.htm b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-02.html similarity index 79% rename from L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nogate.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-02.html index 312d3186fa..56112c9d6e 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-nogate.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-02.html @@ -1,3 +1,3 @@ <html><body>Court Magician:<br> -I cannot find the lord's signal right now, so it is impossible to cast the spell. +I cannot find the lord's signal right now, so it is impossible to cast the spell.<br><br> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-03.html new file mode 100644 index 0000000000..1beaa86b72 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-03.html @@ -0,0 +1,6 @@ +<html><body> +The Talisman is both magical and mysterious. Once applied to your bracelet, you will be able to see its surprising effect for yourself. Before I can give it to you, however, you must prove to me that you are capable of responsibly wielding such power. Give me <font color = "LEVEL">10 Knight's Epaulettes</font> and I will provide you the Talisman.<br><br><br> +<center> +<a action="bypass -h Quest CastleCourtMagician giveTalisman">Give Knight's Epaulettes.</a> +</center> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-KE-Exchange.htm b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-04.html similarity index 68% rename from L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-KE-Exchange.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-04.html index 959b8e3cbb..a94976a0f0 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician-KE-Exchange.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-04.html @@ -1,3 +1,3 @@ <html><body> Very well. Here you go! -</body></html> \ No newline at end of file +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-05.html new file mode 100644 index 0000000000..e5c1e59e18 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-05.html @@ -0,0 +1,3 @@ +<html><body> +If you cannot prove your worthiness, I cannot give it to you. Please leave! +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-06.html new file mode 100644 index 0000000000..bbc2afb8fb --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician-06.html @@ -0,0 +1,4 @@ +<html><body> +You do not have enough Knight's Epaulettes.<br><br> +<a action="bypass -h Quest CastleCourtMagician courtmagician.html">Back.</a><br><br> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician.htm b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician.html similarity index 58% rename from L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician.html index b57acfba17..0a9a77d7c9 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/castlemagician/magician.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/courtmagician.html @@ -1,14 +1,14 @@ <html><body>Court Magician:<br> Cast your eyes upon the results of this magical research conducted by the Mystics Guild.<br> -You can make use of a magical field capable of teleporting a clan member through a crown, as well as magic that provides special abilities to you low-ranking soldiers. We even have a Talisman, a magical crystal filled with power.<br> -We have also purchased certain items directly from the Elves' mystical merchant. How may I serve you?<br> +You can make use of a magical field capable of teleporting a clan member through a crown, as well as magic that provides special abilities to your low-ranking soldiers. We even have a Talisman, a magical crystal filled with power.<br> +We have also purchased certain items directly from the Elves' mystical merchant. How may I serve you?<br><br> <center> -<a action="bypass -h npc_%objectId%_gotoleader">Move through the magic field.</a><br> +<a action="bypass -h Quest CastleCourtMagician clanTeleport">Move through the magic field.</a><br> <a action="bypass -h npc_%objectId%_multisell 90002001">Purchase Elven items.</a><br> <a action="bypass -h npc_%objectId%_multisell 90002002">Purchase Bracelet.</a><br> -<a action="bypass -h npc_%objectId%_multisell 90002003">Purchase Shirt</a><br> +<a action="bypass -h npc_%objectId%_multisell 90002003">Purchase Shirt.</a><br> <a action="bypass -h npc_%objectId%_exc_multisell 90002004">Trade Shirt for Enchanted Shirt.</a><br> -<a action="bypass -h npc_%objectId%_Chat 1">Obtain Talisman.</a><br> -<a action="bypass -h npc_%objectId%_subskills">Learn special skills for low-ranked soldiers.</a> +<a action="bypass -h Quest CastleCourtMagician courtmagician-03.html">Obtain Talisman.</a><br> +<a action="bypass -h Quest CastleCourtMagician squadSkill">Learn special skills for low-ranked soldiers.</a> </center> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/sql/game/npc.sql b/L2J_DataPack_BETA/dist/sql/game/npc.sql index 1e9d26a9cd..3a3bd335d3 100644 --- a/L2J_DataPack_BETA/dist/sql/game/npc.sql +++ b/L2J_DataPack_BETA/dist/sql/game/npc.sql @@ -9560,15 +9560,15 @@ INSERT INTO `npc` VALUES (35645, 35645, "Manor Manager", 0, "Schuttgart", 0, "LineageNPC.e_trader_MOrc", 8, 23.5, 70, "male", "L2ManorManager", 40, 2444.46819, 1345.8, 7.5, 2.7, 40, 43, 30, 21, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 0, 0, 0, 50, 120, 0, 1), (35646, 35646, "Vampire Caster", 0, "", 0, "LineageMonster2.vampire_witch", 6, 21.5, 70, "female", "L2Npc", 1100, 6886, 1251, 7.5, 2.7, 40, 43, 30, 21, 20, 20, 0, 0, 2773, 281.55251, 426.74754, 206.02791, 253, 8, 333, 946, 0, 0, 64, 140, 0, 1), (35647, 35647, "Vampire Leader", 0, "", 0, "LineageMonster2.vampire_lord", 7.5, 25.8, 73, "male", "L2Npc", 40, 7333, 1345.8, 7.5, 2.7, 40, 43, 30, 21, 20, 20, 0, 0, 1204, 295.91597, 470.40463, 216.53847, 253, 4, 333, 0, 0, 0, 15, 170, 0, 1), -(35648, 35648, "Court Magician", 0, "Gludio", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35649, 35649, "Court Magician", 0, "Dion", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35650, 35650, "Court Magician", 0, "Giran", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35651, 35651, "Court Magician", 0, "Oren", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35652, 35652, "Court Magician", 0, "Aden", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35653, 35653, "Court Magician", 0, "Innadril", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35654, 35654, "Court Magician", 0, "Goddard", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35655, 35655, "Court Magician", 0, "Rune", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), -(35656, 35656, "Court Magician", 0, "Schuttgart", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2CastleMagician", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35648, 35648, "Court Magician", 0, "Gludio", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35649, 35649, "Court Magician", 0, "Dion", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35650, 35650, "Court Magician", 0, "Giran", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35651, 35651, "Court Magician", 0, "Oren", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35652, 35652, "Court Magician", 0, "Aden", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35653, 35653, "Court Magician", 0, "Innadril", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35654, 35654, "Court Magician", 0, "Goddard", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35655, 35655, "Court Magician", 0, "Rune", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), +(35656, 35656, "Court Magician", 0, "Schuttgart", 0, "LineageMonster3.Elite_Mage", 6.5, 21.96, 70, "female", "L2Npc", 40, 2444.46819, 1345.8, 7.5, 2.7, 22, 27, 21, 41, 20, 20, 0, 0, 688.86373, 295.91597, 470.40463, 216.53847, 253, 4, 333, 8687, 0, 0, 33, 120, 0, 1), (35657, 35657, "Flagpole", 0, "", 0, "LineageNpcEV.rune_holything", 46, 72.5, 20, "etc", "L2Npc", 40, 342.5127, 192, 2.5, 1.2, 40, 43, 30, 21, 20, 20, 40, 0, 44.32863, 86.87049, 30.2707, 63.56806, 253, 4, 333, 0, 0, 0, 50, 1, 0, 1), (35658, 35658, "Foreman", 0, "Shanty Fortress", 0, "LineageNPC.a_royal_guardA_MHuman", 7, 24, 75, "male", "L2FortManager", 40, 2676.65854, 1507.8, 8.5, 3, 40, 43, 30, 21, 20, 20, 0, 0, 794.70901, 319.24623, 542.68324, 233.61053, 253, 4, 333, 0, 0, 0, 50, 120, 0, 1), (35659, 35659, "Suspicious Merchant", 0, "Shanty Fortress", 0, "LineageNPC.e_guard_MOrc", 8, 27, 75, "male", "L2FortSiegeNpc", 40, 2676.65854, 1507.8, 8.5, 3, 40, 43, 30, 21, 20, 20, 0, 0, 794.70901, 319.24623, 542.68324, 233.61053, 253, 4, 333, 0, 0, 0, 50, 100, 0, 1), -- GitLab