diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/html/default/34095.htm b/L2J_Mobius_2.5_Underground/dist/game/data/html/default/34095.htm index f7854b5ac7..3ec6e61014 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/html/default/34095.htm +++ b/L2J_Mobius_2.5_Underground/dist/game/data/html/default/34095.htm @@ -2,7 +2,7 @@ Gludin as been occupied. There are people who have escaped like me, but I'm not sure if the rest of them are safe.
I thought about helping them, but I had to let others know what happened. That's why I came here.
- + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/instances/AshenShadowRevolutionaries.xml b/L2J_Mobius_2.5_Underground/dist/game/data/instances/AshenShadowRevolutionaries.xml new file mode 100644 index 0000000000..c348356317 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/instances/AshenShadowRevolutionaries.xml @@ -0,0 +1,286 @@ + + + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html new file mode 100644 index 0000000000..5aca1be111 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html @@ -0,0 +1,5 @@ +Sir Klaus Vesper:
+Sigh... I'm just a knight so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html new file mode 100644 index 0000000000..5f4ab4079e --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html @@ -0,0 +1,5 @@ +Priest Adonius:
+Sigh... I'm just a priest so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html new file mode 100644 index 0000000000..2bfd979d25 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+Sigh... I'm just a dwarf so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html new file mode 100644 index 0000000000..239802ac57 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html @@ -0,0 +1,5 @@ +Grand Master Yeniche:
+Sigh... I'm just a wizard so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html new file mode 100644 index 0000000000..8bfbda4a34 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+Sigh... I'm just a wandener, so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html new file mode 100644 index 0000000000..ea98498bd4 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html @@ -0,0 +1,3 @@ +Chest:
+(The box is now open, better speak with the person next to it.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html new file mode 100644 index 0000000000..12834dbdc6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html @@ -0,0 +1,4 @@ +Chest:
+(There's a weird noise coming from inside. It looks like someone is trapped.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html new file mode 100644 index 0000000000..40ad3214bb --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html @@ -0,0 +1,5 @@ +Sir Claus Vesper:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html new file mode 100644 index 0000000000..885393482c --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html @@ -0,0 +1,5 @@ +Adonius:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html new file mode 100644 index 0000000000..a0cfe1b546 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html @@ -0,0 +1,5 @@ +Kluto:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html new file mode 100644 index 0000000000..a2cf88c791 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html @@ -0,0 +1,5 @@ +Yeniche:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html new file mode 100644 index 0000000000..6101db7e9e --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java new file mode 100644 index 0000000000..64e87b941c --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -0,0 +1,312 @@ +/* + * 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 instances.AshenShadowRevolutionaries; + +import com.l2jmobius.commons.util.CommonUtil; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.instancemanager.ZoneManager; +import com.l2jmobius.gameserver.model.Location; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.instancezone.Instance; +import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect; +import com.l2jmobius.gameserver.model.zone.L2ZoneType; +import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; + +import instances.AbstractInstance; + +/** + * @author Mobius, Liamxroy + * @URL https://l2wiki.com/Ashen_Shadow_Revolutionaries + * @VIDEO https://www.youtube.com/watch?v=ohkxylKJAtQ + */ +public class AshenShadowRevolutionaries extends AbstractInstance +{ + // NPCs + private static final int NETI = 34095; + private static final int TREASURE_CHEST = 34101; + private static final int[] QUEST_GIVERS = + { + 34096, + 34097, + 34098, + 34099, + 34100 + }; + // Monsters + private static final int SPY_DWARF = 23650; + private static final int SIGNALMAN = 23651; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + private static final int[] REVOLUTIONARIES = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + 23648, // Dark Crusader (summon) + 23649, // Banshee Queen (summon) + SIGNALMAN, // Unit Signalman + 23652, // Unit Guard + 34103, // Revolutionaries Altar + }; + // Locations + private static final Location QUEST_GIVER_LOCATION = new Location(-77648, 155665, -3190, 21220); + private static final Location COMMANDER_LOCATION_1 = new Location(-81911, 154244, -3177); + private static final Location COMMANDER_LOCATION_2 = new Location(-83028, 150866, -3128); + private static final Location[] SPY_DWARF_LOCATION = + { + new Location(-81313, 152102, -3124, 21220), // Magic Shop + new Location(-83168, 155408, -3175, 64238), // Blacksmith Shop + new Location(-80000, 153379, -3160, 55621), // Grocery Store + }; + // Misc + private static final NpcStringId[] DWARF_SPY_TEXT = + { + NpcStringId.HOW_DID_YOU_KNOW_I_WAS_HERE, + NpcStringId.WHY_ARE_YOU_SO_LATE_HUH_YOU_ARE_NOT_PART_OF_THE_ASHEN_SHADOW_REVOLUTIONARIES, + NpcStringId.I_LL_HAVE_TO_SILENCE_YOU_IN_ORDER_TO_HIDE_THE_FACT_I_M_A_SPY, + NpcStringId.YOU_THINK_YOU_CAN_LEAVE_THIS_PLACE_ALIVE_AFTER_SEEING_ME, + NpcStringId.WAIT_WAIT_IT_WILL_BE_BETTER_FOR_YOU_IF_YOU_LET_ME_LIVE, + NpcStringId.STOP_I_ONLY_HELPED_THE_ASHEN_SHADOW_REVOLUTIONARIES_FOR_A_LITTLE, + }; + private static final L2ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, L2ScriptZone.class); + private static final int TEMPLATE_ID = 260; + + public AshenShadowRevolutionaries() + { + super(TEMPLATE_ID); + addStartNpc(NETI, TREASURE_CHEST); + addFirstTalkId(TREASURE_CHEST, 34151, 34152, 34153, 34154, 34155); + addFirstTalkId(QUEST_GIVERS); + addTalkId(NETI, TREASURE_CHEST); + addSpawnId(REVOLUTIONARIES); + addSpawnId(SPY_DWARF); + addSpawnId(COMMANDERS); + addAttackId(SPY_DWARF); + addKillId(SIGNALMAN); + addKillId(COMMANDERS); + addExitZoneId(TOWN_ZONE.getId()); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + switch (event) + { + case "enterInstance": + { + enterInstance(player, npc, TEMPLATE_ID); + if (player.getInstanceWorld() != null) + { + startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); + } + return null; + } + case "chest_talk": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.OPEN_THIS_BOX); + startQuestTimer("chest_talk", 10000, npc, null); + } + return null; + } + case "openBox": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + world.setStatus(1); + world.spawnGroup("wave_1"); + final L2Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); + if (questGiver.getId() == 34098) // Blacksmith Kluto + { + world.spawnGroup("goods"); + } + if (questGiver.getId() == 34100) // Yuyuria + { + world.spawnGroup("altars"); + } + if (questGiver.getId() == 34097) // Adonius + { + world.getParameters().set("CAPTIVES", world.spawnGroup("captives")); + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.setTargetable(false); + captive.broadcastInfo(); + } + } + else if (getRandom(10) < 3) + { + addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + } + showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); + } + return null; + } + case "exitInstance": + { + final Instance world = npc.getInstanceWorld(); + if (world != null) + { + world.ejectPlayer(player); + } + return null; + } + } + return super.onAdvEvent(event, npc, player); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + + if ((npc.getId() == TREASURE_CHEST) && (world.getStatus() > 0)) + { + return "34101-1.html"; + } + + return npc.getId() + ".html"; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + final int id = npc.getId(); + if (id == SIGNALMAN) + { + addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + } + else if (CommonUtil.contains(COMMANDERS, id)) + { + world.incStatus(); + if (world.getStatus() < 3) + { + world.spawnGroup("wave_2"); + } + else + { + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.setTargetable(true); + captive.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.MAGIC_SQUARE); + captive.broadcastInfo(); + } + world.spawnGroup("wave_3"); + world.finishInstance(); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) + { + if (getRandom(10) < 1) + { + npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + } + return super.onAttack(npc, attacker, damage, isSummon); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setRandomWalking(false); + if (npc.getId() == 34103) + { + npc.setIsImmobilized(true); + npc.detachAI(); + } + return super.onSpawn(npc); + } + + @Override + public String onExitZone(L2Character creature, L2ZoneType zone) + { + final Instance world = creature.getInstanceWorld(); + if (creature.isPlayer() && (world != null)) + { + creature.getActingPlayer().teleToLocation(world.getEnterLocation()); + } + return super.onExitZone(creature, zone); + } + + public static void main(String[] args) + { + new AshenShadowRevolutionaries(); + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html new file mode 100644 index 0000000000..a2af30aead --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html @@ -0,0 +1,3 @@ +Neti:
+Who you think you are coming here alone? Gather more people to enter. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html new file mode 100644 index 0000000000..e6befcfbe8 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too weak. I won't let you enter.
+(Only players of at least level 99 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html new file mode 100644 index 0000000000..6010bd8747 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too powerful. I won't let you enter.
+(Only players under level 105 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html new file mode 100644 index 0000000000..9393d67fb1 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html @@ -0,0 +1,3 @@ +Neti:
+You are too weak. Gather more people. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm new file mode 100644 index 0000000000..56265cac54 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+It looks like you are not ready for this mission. Thanks for offering to help, but you'll only get in the way.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm new file mode 100644 index 0000000000..2e45ade55d --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm @@ -0,0 +1,5 @@ +Refugee Neti:
+The ones who attacked Gludin were Orcs and Dark Elves. I mean, they were revolutionaries, really. They are against the Aden kingdom and King Cadmus. They called themselves the Ashen Shadow Revolutionaries.
+It might be because of the Embryo, but the Kingdom hasn't taken any action. Maybe they think it will be alright since it's happening in Gludin. These revolutionaries aren't to be laughed at. It can get really dangerous.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm new file mode 100644 index 0000000000..5fdbf276fd --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm @@ -0,0 +1,6 @@ +Refugee Neti:
+I've come to Gludio to let people know about this. Strong adventurers will be able to save Gludin.
+However, I'm not just asking people for help. I can promise that I have something good to give in return as well.
+When I came out of Gludin... I didn't come out empty-handed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm new file mode 100644 index 0000000000..c8a28abad7 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html new file mode 100644 index 0000000000..fa2dc46a15 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Alright, thank you. Please put a stop to their ambitions!
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html new file mode 100644 index 0000000000..29e02d4de0 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Are you still working on it?
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html new file mode 100644 index 0000000000..2edae112d3 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html @@ -0,0 +1,4 @@ +Refugee Neti:
+You got all the Ashen Certificates? Good. It will be really helpful. I'll give you the reward I promised.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html new file mode 100644 index 0000000000..54de209442 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html @@ -0,0 +1,3 @@ +Refugee Neti:
+I wasn't sure which weapon you would want, so I'll give you a Shadow Weapon Coupon. You can use it to exchange for any Shadow weapon you want. If you enchant it to + 10, you'll be able to exchange it for a more powerful weapon. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html new file mode 100644 index 0000000000..d13c8159ec --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java new file mode 100644 index 0000000000..2f411fefc6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00826_InSearchOfTheSecretWeapon; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * In Search of the Secret Weapon (826) + * @URL https://l2wiki.com/In_Search_of_the_Secret_Weapon + * @author Mobius, Liamxroy + */ +public class Q00826_InSearchOfTheSecretWeapon extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + // Items + private static final int ASHEN_CERTIFICATE = 46371; + private static final int SHADOW_WEAPON_COUPON = 46376; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00826_InSearchOfTheSecretWeapon() + { + super(826); + addStartNpc(NETI); + addTalkId(NETI); + addKillId(COMMANDERS); + addCondMinLevel(MIN_LEVEL, "34095-00.htm"); + registerQuestItems(ASHEN_CERTIFICATE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34095-02.htm": + case "34095-03.htm": + { + htmltext = event; + break; + } + case "34095-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34095-07.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, ASHEN_CERTIFICATE); + rewardItems(player, SHADOW_WEAPON_COUPON, 1); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "34095-05.html"; + } + else + { + htmltext = "34095-06.html"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34095-08.html"; + } + else + { + qs.setState(State.CREATED); + htmltext = "34095-01.htm"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm new file mode 100644 index 0000000000..c5143a6a24 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm @@ -0,0 +1,4 @@ +Sir Klaus Vasper:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm new file mode 100644 index 0000000000..d0a509895f --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm @@ -0,0 +1,6 @@ +Sir Claus Vasper:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm new file mode 100644 index 0000000000..af0bc1cc6a --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm new file mode 100644 index 0000000000..dae53ed9c2 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm @@ -0,0 +1,5 @@ +Sir Claus Vasper:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html new file mode 100644 index 0000000000..bcd0580bd6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html new file mode 100644 index 0000000000..94e1011f55 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html new file mode 100644 index 0000000000..b3d3f9cd72 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html new file mode 100644 index 0000000000..7198e0127c --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html new file mode 100644 index 0000000000..9730c32a41 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java new file mode 100644 index 0000000000..4e319110f3 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java @@ -0,0 +1,201 @@ +/* + * 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 quests.Q00827_EinhasadsOrder; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Einhasad's Order (827) + * @URL https://l2wiki.com/Einhasad%27s_Order + * @author Liamxroy + */ +public class Q00827_EinhasadsOrder extends Quest +{ + // NPC + private static final int SIR_KLAUS_VASPER = 34096; + private static final int SIR_KLAUS_VASPER_FINISH = 34151; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int REVOLUTIONARIES_MARK_PIECE = 46372; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00827_EinhasadsOrder() + { + super(827); + addStartNpc(SIR_KLAUS_VASPER); + addTalkId(SIR_KLAUS_VASPER, SIR_KLAUS_VASPER_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34096-00.htm"); + registerQuestItems(REVOLUTIONARIES_MARK_PIECE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34096-02.htm": + case "34096-03.htm": + { + htmltext = event; + break; + } + case "34096-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34151-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, REVOLUTIONARIES_MARK_PIECE); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-05.html"; + } + else + { + htmltext = "34151-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == SIR_KLAUS_VASPER)) + { + qs.setState(State.CREATED); + htmltext = "34096-01.htm"; + } + else + { + htmltext = "34096-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm new file mode 100644 index 0000000000..d516e5ebc3 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+You don't plan on increasing the number of captives, do you?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm new file mode 100644 index 0000000000..729db67deb --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+Gludin Village was very peaceful. For a long time. We've never been attacked like this before. It's not even a military zone.
+That's why we weren't able to fight back. We were unprepared.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm new file mode 100644 index 0000000000..9cd287a9f7 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+I'm sure the adventurers have come here to defeat the so called revolutionaries. However, there's something more important for me.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm new file mode 100644 index 0000000000..eeb776b3fc --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+It's to save those who have been captured. They didn't even fight back. They just were in the wrong place at the wrong time.
+Please don't let them die.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html new file mode 100644 index 0000000000..fddb539d9a --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html new file mode 100644 index 0000000000..ff2ef0fe9a --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html new file mode 100644 index 0000000000..527467af64 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html @@ -0,0 +1,3 @@ +Priest Adonius:
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html new file mode 100644 index 0000000000..b9cb198d9e --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html @@ -0,0 +1,4 @@ +Priest Adonius:
+I saw that you saved many of the captives. Thank you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html new file mode 100644 index 0000000000..cd6330449e --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html @@ -0,0 +1,3 @@ +Priest Adonius:
+You have a kind heart. It's nothing much, but I prepared a small gift for you since you saved so many lives. I hope it's helpful. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java new file mode 100644 index 0000000000..94fe54ced8 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -0,0 +1,222 @@ +/* + * 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 quests.Q00828_EvasBlessing; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * Eva's Blessing (828) + * @URL https://l2wiki.com/Eva%27s_Blessing + * @author Liamxroy + */ +public class Q00828_EvasBlessing extends Quest +{ + // NPC + private static final int ADONIUS = 34097; + private static final int ADONIUS_FINISH = 34152; + private static final int[] CAPTIVES = + { + 34104, + 34105, + 34106, + 34107, + 34108, + 34109, + 34110, + 34111, + 34112, + 34113, + 34114, + 34115, + 34116, + 34117, + 34118, + 34119, + 34120, + 34121, + 34122, + 34123, + 34124, + 34125, + 34126, + 34127, + 34128, + 34129, + 34130, + 34131, + 34132, + 34133, + 34134, + 34135, + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final NpcStringId[] CAPTIVES_TEXT = + { + NpcStringId.WHAT_WHO_ARE_YOU, + NpcStringId.WE_MUST_ALERT_THE_COMMANDER_ABOUT_THESE_INTRUDERS, + NpcStringId.ALERT_EVERYONE, + }; + private static final int MIN_LEVEL = 100; + + public Q00828_EvasBlessing() + { + super(828); + addStartNpc(ADONIUS); + addFirstTalkId(CAPTIVES); + addTalkId(ADONIUS, ADONIUS_FINISH); + addCondMinLevel(MIN_LEVEL, "34097-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34097-02.htm": + case "34097-03.htm": + { + htmltext = event; + break; + } + case "34097-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34152-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-05.html"; + } + else + { + htmltext = "34152-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == ADONIUS)) + { + qs.setState(State.CREATED); + htmltext = "34097-01.htm"; + } + else + { + htmltext = "34097-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + int count = ms.getMemoState(); + count++; + if (count < 20) + { + ms.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.RESCUING_CAPTIVES, count); + member.sendPacket(log); + } + if (count >= 20) + { + ms.setCond(2, true); + } + } + } + npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.deleteMe(); + return "captive-0" + getRandom(1, 3) + ".html"; + } + return null; + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html new file mode 100644 index 0000000000..cad99aec8d --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html @@ -0,0 +1,3 @@ +Captive:
+You saved me! + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html new file mode 100644 index 0000000000..cdc3129637 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html @@ -0,0 +1,3 @@ +Captive:
+How did you find us? + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html new file mode 100644 index 0000000000..89ca8fc614 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html @@ -0,0 +1,3 @@ +Captive:
+Thank you! You are my savior. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm new file mode 100644 index 0000000000..f2a9aa1fba --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+What happened? Why are you here?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm new file mode 100644 index 0000000000..5779721c2b --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I came to Gludin a long time ago. We've been spoiled by peace. I only know how to craft weapons, but don't have the strength to wield a sword.
+But there's something that I found out. Since you helped me out, I'll give you a good piece of information. How does that sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm new file mode 100644 index 0000000000..c965d7669b --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I saw them while hiding. There were some boxes, and they put some valuable stuff in there. Unfortunately, I was waiting on the side since it was too dangerous, but they must have moved them.
+Can you get those valuable items?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm new file mode 100644 index 0000000000..bd57b1dd98 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Not for free, of course. I'll reward you with a better item.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html new file mode 100644 index 0000000000..5b7276a4ef --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Revolutionaries around the Gludin Village have placed boxes of supplies all over the place. I'm looking for the Transport Goods. +Please bring back some if you find them. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html new file mode 100644 index 0000000000..3c55f9b12d --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Did you find the box? Hmm... I guess not yet. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html new file mode 100644 index 0000000000..543ef2c5b4 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Hello fellow, I have not a mission for you today.
+Come back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html new file mode 100644 index 0000000000..87297bd5a6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html @@ -0,0 +1,3 @@ +Transport Goods:
+(You have opened the box.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html new file mode 100644 index 0000000000..72a5fc0820 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Did you find the box? Let me see!
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html new file mode 100644 index 0000000000..e605dd603d --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Great! You don't really need this item, so I'll exchange it for a box with something better in it. Not lying. Why would I? + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java new file mode 100644 index 0000000000..98e4b6d509 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00829_MaphrsSalvation; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Maphr's Salvation (829) + * @URL https://l2wiki.com/Maphr%27s_Salvation + * @author Liamxroy + */ +public class Q00829_MaphrsSalvation extends Quest +{ + // NPC + private static final int BLACKSMITH_KLUTO = 34098; + private static final int BLACKSMITH_KLUTO_FINISH = 34153; + private static final int TRANSPORT_GOODS_NPC = 34102; + // Items + private static final int TRASPORT_GOODS_ITEM = 46373; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00829_MaphrsSalvation() + { + super(829); + addStartNpc(BLACKSMITH_KLUTO); + addFirstTalkId(TRANSPORT_GOODS_NPC); + addTalkId(BLACKSMITH_KLUTO, BLACKSMITH_KLUTO_FINISH); + addCondMinLevel(MIN_LEVEL, "34098-00.htm"); + registerQuestItems(TRASPORT_GOODS_ITEM); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34098-02.htm": + case "34098-03.htm": + { + htmltext = event; + break; + } + case "34098-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34153-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, TRASPORT_GOODS_ITEM); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-05.html"; + } + else + { + htmltext = "34153-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == BLACKSMITH_KLUTO)) + { + qs.setState(State.CREATED); + htmltext = "34098-01.htm"; + } + else + { + htmltext = "34098-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) < 1) + { + giveItems(member, TRASPORT_GOODS_ITEM, 1); + } + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) >= 1) + { + ms.setCond(2, true); + } + } + } + npc.deleteMe(); + return "34102-01.html"; + } + return null; + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm new file mode 100644 index 0000000000..6740b2f4bd --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm @@ -0,0 +1,4 @@ +Yeniche:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm new file mode 100644 index 0000000000..e8a20b8eac --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm @@ -0,0 +1,6 @@ +Yeniche:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm new file mode 100644 index 0000000000..e5eb27a1c1 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm @@ -0,0 +1,4 @@ +Yeniche:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm new file mode 100644 index 0000000000..0ad986a5c6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm @@ -0,0 +1,5 @@ +Yeniche:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html new file mode 100644 index 0000000000..463f551b88 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html @@ -0,0 +1,4 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html new file mode 100644 index 0000000000..61f96bea60 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html @@ -0,0 +1,3 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html new file mode 100644 index 0000000000..9c8af68865 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html @@ -0,0 +1,4 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html new file mode 100644 index 0000000000..fe24ca0680 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html @@ -0,0 +1,4 @@ +Yeniche:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html new file mode 100644 index 0000000000..3dd308dc18 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html @@ -0,0 +1,3 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java new file mode 100644 index 0000000000..7bb02f7361 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java @@ -0,0 +1,209 @@ +/* + * 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 quests.Q00830_TheWayOfTheGiantsPawn; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * The Way of the Giant's Pawn (830) + * @URL https://l2wiki.com/The_Way_of_the_Giant%27s_Pawn + * @author Liamxroy + */ +public class Q00830_TheWayOfTheGiantsPawn extends Quest +{ + // NPC + private static final int YENICHE = 34099; + private static final int YENICHE_FINISH = 34154; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00830_TheWayOfTheGiantsPawn() + { + super(830); + addStartNpc(YENICHE); + addTalkId(YENICHE, YENICHE_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34099-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34099-02.htm": + case "34099-03.htm": + { + htmltext = event; + break; + } + case "34099-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34154-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-05.html"; + } + else + { + htmltext = "34154-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YENICHE)) + { + qs.setState(State.CREATED); + htmltext = "34099-01.htm"; + } + else + { + htmltext = "34099-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + int count = qs.getMemoState(); + count++; + if (count < 45) + { + qs.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.DEFEAT_THE_ELITE_SOLDIERS_OF_THE_REVOLUTIONARIES, count); + member.sendPacket(log); + } + if (count >= 45) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm new file mode 100644 index 0000000000..5240b2d0c0 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Oh, I'm sorry. This box is mine! If you want to hide, go somewhere else.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm new file mode 100644 index 0000000000..5acce7b520 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Good! I guess you are on our side. Then, I have a request. Since you are armed, you must be here for a good reason. How does it sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm new file mode 100644 index 0000000000..80284272af --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+I'm pretty smart, you know. It seems like you are here to get rid of the Ashen Shadow Revolutionaries, and I have the perfect plan for you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm new file mode 100644 index 0000000000..3a48685580 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+They have allied in the name of revolution. It's important that we destroy their symbol of unification. They do have a symbol.
+Sometimes it's better to throw them into confusion by attacking their trust, rather than fight them head-on. It's something I learned from Sayha. I'll give you something good if you help me out.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html new file mode 100644 index 0000000000..f32a67a7d6 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Alright, we have a deal! Please destroy the Revolutionaries' Altars that solidify the unification of the two races. Please bring back 10 Destroyed Mark Fragments as proof.
Of course, they won't just stand and watch. Be ready to fight them! + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html new file mode 100644 index 0000000000..142fe39a68 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Didn't we settle this? Please destroy the Revolutionaries' Altar and collect 10 Destroyed Mark Fragments.
+I'm sure you know you must defeat the intruders. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html new file mode 100644 index 0000000000..8aadb14598 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me.
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html new file mode 100644 index 0000000000..82af657701 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+You're done! Any injuries? Glad to see you are safe. It looks like you've finished the mission.
+ + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html new file mode 100644 index 0000000000..b33ebd4fb9 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me. Here's a small gift for your work.
+Well, goodbye. + \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java new file mode 100644 index 0000000000..4768177df2 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java @@ -0,0 +1,167 @@ +/* + * 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 quests.Q00831_SayhasScheme; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Sayha's Scheme (831) + * @URL https://l2wiki.com/Sayha%27s_Scheme + * @author Liamxroy + */ +public class Q00831_SayhasScheme extends Quest +{ + // NPC + private static final int YUYURIA = 34100; + private static final int YUYURIA_FINISH = 34155; + private static final int ALTAR = 34103; + // Items + private static final int DESTROYED_MARK_FRAGMENT = 46374; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00831_SayhasScheme() + { + super(831); + addStartNpc(YUYURIA); + addTalkId(YUYURIA, YUYURIA_FINISH); + addKillId(ALTAR); + addCondMinLevel(MIN_LEVEL, "34100-00.htm"); + registerQuestItems(DESTROYED_MARK_FRAGMENT); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34100-02.htm": + case "34100-03.htm": + { + htmltext = event; + break; + } + case "34100-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34155-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, DESTROYED_MARK_FRAGMENT); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-05.html"; + } + else + { + htmltext = "34155-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YUYURIA)) + { + qs.setState(State.CREATED); + htmltext = "34100-01.htm"; + } + else + { + htmltext = "34100-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java index f2059e6fba..f304e18a59 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -214,6 +214,12 @@ import quests.Q00787_TheRoleOfAWatcher.Q00787_TheRoleOfAWatcher; import quests.Q00790_ObtainingFerinsTrust.Q00790_ObtainingFerinsTrust; import quests.Q00817_BlackAteliaResearch.Q00817_BlackAteliaResearch; import quests.Q00823_DisappearedRaceNewFairy.Q00823_DisappearedRaceNewFairy; +import quests.Q00826_InSearchOfTheSecretWeapon.Q00826_InSearchOfTheSecretWeapon; +import quests.Q00827_EinhasadsOrder.Q00827_EinhasadsOrder; +import quests.Q00828_EvasBlessing.Q00828_EvasBlessing; +import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation; +import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn; +import quests.Q00831_SayhasScheme.Q00831_SayhasScheme; import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade; import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra; import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas; @@ -680,6 +686,12 @@ public class QuestMasterHandler Q00790_ObtainingFerinsTrust.class, Q00817_BlackAteliaResearch.class, Q00823_DisappearedRaceNewFairy.class, + Q00826_InSearchOfTheSecretWeapon.class, + Q00827_EinhasadsOrder.class, + Q00828_EvasBlessing.class, + Q00829_MaphrsSalvation.class, + Q00830_TheWayOfTheGiantsPawn.class, + Q00831_SayhasScheme.class, Q00901_HowLavasaurusesAreMade.class, Q00902_ReclaimOurEra.class, Q00903_TheCallOfAntharas.class, diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/items/46300-46399.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/items/46300-46399.xml index 150bff7115..b75c6241fa 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/items/46300-46399.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/items/46300-46399.xml @@ -1397,6 +1397,7 @@ + @@ -1411,6 +1412,7 @@ + @@ -1425,6 +1427,7 @@ + @@ -1439,6 +1442,7 @@ + @@ -1462,7 +1466,11 @@ - + + + + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/08400-08499.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/08400-08499.xml index dcf0f1b21d..143deecb74 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/08400-08499.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/08400-08499.xml @@ -230,7 +230,7 @@ - + @@ -1130,7 +1130,7 @@ - + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/19600-19699.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/19600-19699.xml index 642d8c3a8f..14f51ef557 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/19600-19699.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/19600-19699.xml @@ -1,19 +1,21 @@ - PLANT - - + + + + + + + + - - - @@ -27,20 +29,17 @@ - - + - - HUMAN - FEMALE + ETC @@ -48,27 +47,25 @@ - + - - HUMAN - FEMALE + ETC - + - + - - + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23600-23699.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23600-23699.xml index f226521fa3..d3253bee5d 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23600-23699.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23600-23699.xml @@ -1,9 +1,10 @@ - + - HUMAN + HUMANOID FEMALE + @@ -22,11 +23,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -45,11 +62,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -68,6 +101,21 @@ + + + + + + + + + + + + + + + @@ -111,7 +159,7 @@ - + HUMAN FEMALE @@ -132,7 +180,7 @@ - + HUMAN FEMALE @@ -153,10 +201,11 @@ - + HUMAN FEMALE + @@ -174,7 +223,7 @@ - + HUMAN FEMALE @@ -195,9 +244,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -216,9 +265,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -237,9 +286,9 @@ - + - HUMAN + DIVINE FEMALE @@ -258,9 +307,9 @@ - + - HUMAN + DIVINE FEMALE @@ -280,9 +329,9 @@ - + - HUMAN + DIVINE FEMALE @@ -301,9 +350,9 @@ - + - HUMAN + DEMONIC FEMALE @@ -322,9 +371,9 @@ - + - HUMAN + DIVINE FEMALE @@ -333,6 +382,11 @@ + + + REVOLUTIONARIES + + @@ -344,1047 +398,2967 @@ - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + - + + + REVOLUTIONARIES + + - - - HUMAN - FEMALE - - + + ETC + + + + + - + + + REVOLUTIONARIES + + - - - HUMAN + + DWARF FEMALE - - + + + + - + + + + + + + + - - - HUMAN + + ORC FEMALE - - + + + + - - - - HUMAN - FEMALE - - + + ETC + + + + + + + REVOLUTIONARIES + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1401,11 +3375,28 @@ + + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1422,11 +3413,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1443,8 +3450,24 @@ + + + + + + + + + + + + + + + + - + HUMAN FEMALE @@ -1465,9 +3488,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -1486,9 +3509,9 @@ - + - HUMAN + BUG FEMALE @@ -1507,12 +3530,12 @@ - + - HUMAN + DIVINE FEMALE - + @@ -1528,9 +3551,9 @@ - + - HUMAN + DIVINE FEMALE @@ -1549,9 +3572,9 @@ - + - HUMAN + DIVINE FEMALE @@ -1570,9 +3593,9 @@ - + - HUMAN + ELEMENTAL FEMALE @@ -1591,9 +3614,9 @@ - + - HUMAN + ELEMENTAL FEMALE @@ -1612,9 +3635,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -1638,7 +3661,7 @@ HUMAN FEMALE - + @@ -1656,10 +3679,11 @@ - HUMAN + HUMANOID FEMALE + - + @@ -1671,7 +3695,7 @@ - + HUMAN FEMALE @@ -1688,7 +3712,7 @@ - + HUMAN FEMALE @@ -1722,7 +3746,7 @@ - + HUMAN FEMALE @@ -1739,7 +3763,7 @@ - + HUMAN FEMALE @@ -1792,8 +3816,9 @@ - HUMAN + UNDEAD FEMALE + @@ -1807,7 +3832,7 @@ - + HUMAN FEMALE diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/34100-34199.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/34100-34199.xml index 96e66263fa..6b17eea969 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/34100-34199.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/34100-34199.xml @@ -38,7 +38,6 @@ - HUMAN FEMALE @@ -55,17 +54,14 @@ - - HUMAN - FEMALE - + ETC + - diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15100-15199.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15100-15199.xml index 844b3f49bb..32d746cddd 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15100-15199.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15100-15199.xml @@ -1621,7 +1621,7 @@ 0 99 1 - 3600 + 7200 true SELF SINGLE diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/18400-18499.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/18400-18499.xml index 70ecc15efe..cc5a57e5ec 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/18400-18499.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/18400-18499.xml @@ -1218,9 +1218,136 @@ 30000 - icon.skill0000 A1 + 500 + 500 + 2 + 1 + 1 + 46375 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 10 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/zones/custom_script.xml b/L2J_Mobius_2.5_Underground/dist/game/data/zones/custom_script.xml index 7ca961f3b1..05cc2e9671 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/zones/custom_script.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/zones/custom_script.xml @@ -1093,4 +1093,8 @@ + + + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/html/default/34095.htm b/L2J_Mobius_3.0_Helios/dist/game/data/html/default/34095.htm index f7854b5ac7..3ec6e61014 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/html/default/34095.htm +++ b/L2J_Mobius_3.0_Helios/dist/game/data/html/default/34095.htm @@ -2,7 +2,7 @@ Gludin as been occupied. There are people who have escaped like me, but I'm not sure if the rest of them are safe.
I thought about helping them, but I had to let others know what happened. That's why I came here.
- + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/instances/AshenShadowRevolutionaries.xml b/L2J_Mobius_3.0_Helios/dist/game/data/instances/AshenShadowRevolutionaries.xml new file mode 100644 index 0000000000..c348356317 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/instances/AshenShadowRevolutionaries.xml @@ -0,0 +1,286 @@ + + + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html new file mode 100644 index 0000000000..5aca1be111 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html @@ -0,0 +1,5 @@ +Sir Klaus Vesper:
+Sigh... I'm just a knight so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html new file mode 100644 index 0000000000..5f4ab4079e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html @@ -0,0 +1,5 @@ +Priest Adonius:
+Sigh... I'm just a priest so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html new file mode 100644 index 0000000000..2bfd979d25 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+Sigh... I'm just a dwarf so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html new file mode 100644 index 0000000000..239802ac57 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html @@ -0,0 +1,5 @@ +Grand Master Yeniche:
+Sigh... I'm just a wizard so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html new file mode 100644 index 0000000000..8bfbda4a34 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+Sigh... I'm just a wandener, so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html new file mode 100644 index 0000000000..ea98498bd4 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html @@ -0,0 +1,3 @@ +Chest:
+(The box is now open, better speak with the person next to it.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html new file mode 100644 index 0000000000..12834dbdc6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html @@ -0,0 +1,4 @@ +Chest:
+(There's a weird noise coming from inside. It looks like someone is trapped.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html new file mode 100644 index 0000000000..40ad3214bb --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html @@ -0,0 +1,5 @@ +Sir Claus Vesper:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html new file mode 100644 index 0000000000..885393482c --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html @@ -0,0 +1,5 @@ +Adonius:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html new file mode 100644 index 0000000000..a0cfe1b546 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html @@ -0,0 +1,5 @@ +Kluto:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html new file mode 100644 index 0000000000..a2cf88c791 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html @@ -0,0 +1,5 @@ +Yeniche:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html new file mode 100644 index 0000000000..6101db7e9e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java new file mode 100644 index 0000000000..64e87b941c --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -0,0 +1,312 @@ +/* + * 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 instances.AshenShadowRevolutionaries; + +import com.l2jmobius.commons.util.CommonUtil; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.instancemanager.ZoneManager; +import com.l2jmobius.gameserver.model.Location; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.instancezone.Instance; +import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect; +import com.l2jmobius.gameserver.model.zone.L2ZoneType; +import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; + +import instances.AbstractInstance; + +/** + * @author Mobius, Liamxroy + * @URL https://l2wiki.com/Ashen_Shadow_Revolutionaries + * @VIDEO https://www.youtube.com/watch?v=ohkxylKJAtQ + */ +public class AshenShadowRevolutionaries extends AbstractInstance +{ + // NPCs + private static final int NETI = 34095; + private static final int TREASURE_CHEST = 34101; + private static final int[] QUEST_GIVERS = + { + 34096, + 34097, + 34098, + 34099, + 34100 + }; + // Monsters + private static final int SPY_DWARF = 23650; + private static final int SIGNALMAN = 23651; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + private static final int[] REVOLUTIONARIES = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + 23648, // Dark Crusader (summon) + 23649, // Banshee Queen (summon) + SIGNALMAN, // Unit Signalman + 23652, // Unit Guard + 34103, // Revolutionaries Altar + }; + // Locations + private static final Location QUEST_GIVER_LOCATION = new Location(-77648, 155665, -3190, 21220); + private static final Location COMMANDER_LOCATION_1 = new Location(-81911, 154244, -3177); + private static final Location COMMANDER_LOCATION_2 = new Location(-83028, 150866, -3128); + private static final Location[] SPY_DWARF_LOCATION = + { + new Location(-81313, 152102, -3124, 21220), // Magic Shop + new Location(-83168, 155408, -3175, 64238), // Blacksmith Shop + new Location(-80000, 153379, -3160, 55621), // Grocery Store + }; + // Misc + private static final NpcStringId[] DWARF_SPY_TEXT = + { + NpcStringId.HOW_DID_YOU_KNOW_I_WAS_HERE, + NpcStringId.WHY_ARE_YOU_SO_LATE_HUH_YOU_ARE_NOT_PART_OF_THE_ASHEN_SHADOW_REVOLUTIONARIES, + NpcStringId.I_LL_HAVE_TO_SILENCE_YOU_IN_ORDER_TO_HIDE_THE_FACT_I_M_A_SPY, + NpcStringId.YOU_THINK_YOU_CAN_LEAVE_THIS_PLACE_ALIVE_AFTER_SEEING_ME, + NpcStringId.WAIT_WAIT_IT_WILL_BE_BETTER_FOR_YOU_IF_YOU_LET_ME_LIVE, + NpcStringId.STOP_I_ONLY_HELPED_THE_ASHEN_SHADOW_REVOLUTIONARIES_FOR_A_LITTLE, + }; + private static final L2ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, L2ScriptZone.class); + private static final int TEMPLATE_ID = 260; + + public AshenShadowRevolutionaries() + { + super(TEMPLATE_ID); + addStartNpc(NETI, TREASURE_CHEST); + addFirstTalkId(TREASURE_CHEST, 34151, 34152, 34153, 34154, 34155); + addFirstTalkId(QUEST_GIVERS); + addTalkId(NETI, TREASURE_CHEST); + addSpawnId(REVOLUTIONARIES); + addSpawnId(SPY_DWARF); + addSpawnId(COMMANDERS); + addAttackId(SPY_DWARF); + addKillId(SIGNALMAN); + addKillId(COMMANDERS); + addExitZoneId(TOWN_ZONE.getId()); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + switch (event) + { + case "enterInstance": + { + enterInstance(player, npc, TEMPLATE_ID); + if (player.getInstanceWorld() != null) + { + startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); + } + return null; + } + case "chest_talk": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.OPEN_THIS_BOX); + startQuestTimer("chest_talk", 10000, npc, null); + } + return null; + } + case "openBox": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + world.setStatus(1); + world.spawnGroup("wave_1"); + final L2Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); + if (questGiver.getId() == 34098) // Blacksmith Kluto + { + world.spawnGroup("goods"); + } + if (questGiver.getId() == 34100) // Yuyuria + { + world.spawnGroup("altars"); + } + if (questGiver.getId() == 34097) // Adonius + { + world.getParameters().set("CAPTIVES", world.spawnGroup("captives")); + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.setTargetable(false); + captive.broadcastInfo(); + } + } + else if (getRandom(10) < 3) + { + addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + } + showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); + } + return null; + } + case "exitInstance": + { + final Instance world = npc.getInstanceWorld(); + if (world != null) + { + world.ejectPlayer(player); + } + return null; + } + } + return super.onAdvEvent(event, npc, player); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + + if ((npc.getId() == TREASURE_CHEST) && (world.getStatus() > 0)) + { + return "34101-1.html"; + } + + return npc.getId() + ".html"; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + final int id = npc.getId(); + if (id == SIGNALMAN) + { + addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + } + else if (CommonUtil.contains(COMMANDERS, id)) + { + world.incStatus(); + if (world.getStatus() < 3) + { + world.spawnGroup("wave_2"); + } + else + { + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.setTargetable(true); + captive.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.MAGIC_SQUARE); + captive.broadcastInfo(); + } + world.spawnGroup("wave_3"); + world.finishInstance(); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) + { + if (getRandom(10) < 1) + { + npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + } + return super.onAttack(npc, attacker, damage, isSummon); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setRandomWalking(false); + if (npc.getId() == 34103) + { + npc.setIsImmobilized(true); + npc.detachAI(); + } + return super.onSpawn(npc); + } + + @Override + public String onExitZone(L2Character creature, L2ZoneType zone) + { + final Instance world = creature.getInstanceWorld(); + if (creature.isPlayer() && (world != null)) + { + creature.getActingPlayer().teleToLocation(world.getEnterLocation()); + } + return super.onExitZone(creature, zone); + } + + public static void main(String[] args) + { + new AshenShadowRevolutionaries(); + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html new file mode 100644 index 0000000000..a2af30aead --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html @@ -0,0 +1,3 @@ +Neti:
+Who you think you are coming here alone? Gather more people to enter. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html new file mode 100644 index 0000000000..e6befcfbe8 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too weak. I won't let you enter.
+(Only players of at least level 99 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html new file mode 100644 index 0000000000..6010bd8747 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too powerful. I won't let you enter.
+(Only players under level 105 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html new file mode 100644 index 0000000000..9393d67fb1 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html @@ -0,0 +1,3 @@ +Neti:
+You are too weak. Gather more people. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt index 1643d36828..4eaa219a4a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt @@ -32,12 +32,6 @@ 816 Plans to Repair the Stronghold 824 Attack the Command Post 825 Hunter Guild Request - Valley of Saints -826 In Search of the Secret Weapon -827 Einhasad's Order -828 Eva's Blessing -829 Maphr's Salvation -830 The Way of the Giant's Pawn -831 Sayha's Scheme 832 Hunter Guild Request - Southern Region, Isle of Prayer 833 Devil's Treasure, Tauti 834 Against Dragonclaw diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm new file mode 100644 index 0000000000..56265cac54 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+It looks like you are not ready for this mission. Thanks for offering to help, but you'll only get in the way.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm new file mode 100644 index 0000000000..2e45ade55d --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm @@ -0,0 +1,5 @@ +Refugee Neti:
+The ones who attacked Gludin were Orcs and Dark Elves. I mean, they were revolutionaries, really. They are against the Aden kingdom and King Cadmus. They called themselves the Ashen Shadow Revolutionaries.
+It might be because of the Embryo, but the Kingdom hasn't taken any action. Maybe they think it will be alright since it's happening in Gludin. These revolutionaries aren't to be laughed at. It can get really dangerous.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm new file mode 100644 index 0000000000..5fdbf276fd --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm @@ -0,0 +1,6 @@ +Refugee Neti:
+I've come to Gludio to let people know about this. Strong adventurers will be able to save Gludin.
+However, I'm not just asking people for help. I can promise that I have something good to give in return as well.
+When I came out of Gludin... I didn't come out empty-handed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm new file mode 100644 index 0000000000..c8a28abad7 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html new file mode 100644 index 0000000000..fa2dc46a15 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Alright, thank you. Please put a stop to their ambitions!
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html new file mode 100644 index 0000000000..29e02d4de0 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Are you still working on it?
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html new file mode 100644 index 0000000000..2edae112d3 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html @@ -0,0 +1,4 @@ +Refugee Neti:
+You got all the Ashen Certificates? Good. It will be really helpful. I'll give you the reward I promised.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html new file mode 100644 index 0000000000..54de209442 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html @@ -0,0 +1,3 @@ +Refugee Neti:
+I wasn't sure which weapon you would want, so I'll give you a Shadow Weapon Coupon. You can use it to exchange for any Shadow weapon you want. If you enchant it to + 10, you'll be able to exchange it for a more powerful weapon. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html new file mode 100644 index 0000000000..d13c8159ec --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java new file mode 100644 index 0000000000..2f411fefc6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00826_InSearchOfTheSecretWeapon; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * In Search of the Secret Weapon (826) + * @URL https://l2wiki.com/In_Search_of_the_Secret_Weapon + * @author Mobius, Liamxroy + */ +public class Q00826_InSearchOfTheSecretWeapon extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + // Items + private static final int ASHEN_CERTIFICATE = 46371; + private static final int SHADOW_WEAPON_COUPON = 46376; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00826_InSearchOfTheSecretWeapon() + { + super(826); + addStartNpc(NETI); + addTalkId(NETI); + addKillId(COMMANDERS); + addCondMinLevel(MIN_LEVEL, "34095-00.htm"); + registerQuestItems(ASHEN_CERTIFICATE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34095-02.htm": + case "34095-03.htm": + { + htmltext = event; + break; + } + case "34095-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34095-07.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, ASHEN_CERTIFICATE); + rewardItems(player, SHADOW_WEAPON_COUPON, 1); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "34095-05.html"; + } + else + { + htmltext = "34095-06.html"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34095-08.html"; + } + else + { + qs.setState(State.CREATED); + htmltext = "34095-01.htm"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm new file mode 100644 index 0000000000..c5143a6a24 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm @@ -0,0 +1,4 @@ +Sir Klaus Vasper:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm new file mode 100644 index 0000000000..d0a509895f --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm @@ -0,0 +1,6 @@ +Sir Claus Vasper:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm new file mode 100644 index 0000000000..af0bc1cc6a --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm new file mode 100644 index 0000000000..dae53ed9c2 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm @@ -0,0 +1,5 @@ +Sir Claus Vasper:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html new file mode 100644 index 0000000000..bcd0580bd6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html new file mode 100644 index 0000000000..94e1011f55 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html new file mode 100644 index 0000000000..b3d3f9cd72 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html new file mode 100644 index 0000000000..7198e0127c --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html new file mode 100644 index 0000000000..9730c32a41 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java new file mode 100644 index 0000000000..4e319110f3 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java @@ -0,0 +1,201 @@ +/* + * 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 quests.Q00827_EinhasadsOrder; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Einhasad's Order (827) + * @URL https://l2wiki.com/Einhasad%27s_Order + * @author Liamxroy + */ +public class Q00827_EinhasadsOrder extends Quest +{ + // NPC + private static final int SIR_KLAUS_VASPER = 34096; + private static final int SIR_KLAUS_VASPER_FINISH = 34151; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int REVOLUTIONARIES_MARK_PIECE = 46372; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00827_EinhasadsOrder() + { + super(827); + addStartNpc(SIR_KLAUS_VASPER); + addTalkId(SIR_KLAUS_VASPER, SIR_KLAUS_VASPER_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34096-00.htm"); + registerQuestItems(REVOLUTIONARIES_MARK_PIECE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34096-02.htm": + case "34096-03.htm": + { + htmltext = event; + break; + } + case "34096-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34151-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, REVOLUTIONARIES_MARK_PIECE); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-05.html"; + } + else + { + htmltext = "34151-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == SIR_KLAUS_VASPER)) + { + qs.setState(State.CREATED); + htmltext = "34096-01.htm"; + } + else + { + htmltext = "34096-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm new file mode 100644 index 0000000000..d516e5ebc3 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+You don't plan on increasing the number of captives, do you?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm new file mode 100644 index 0000000000..729db67deb --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+Gludin Village was very peaceful. For a long time. We've never been attacked like this before. It's not even a military zone.
+That's why we weren't able to fight back. We were unprepared.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm new file mode 100644 index 0000000000..9cd287a9f7 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+I'm sure the adventurers have come here to defeat the so called revolutionaries. However, there's something more important for me.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm new file mode 100644 index 0000000000..eeb776b3fc --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+It's to save those who have been captured. They didn't even fight back. They just were in the wrong place at the wrong time.
+Please don't let them die.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html new file mode 100644 index 0000000000..fddb539d9a --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html new file mode 100644 index 0000000000..ff2ef0fe9a --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html new file mode 100644 index 0000000000..527467af64 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html @@ -0,0 +1,3 @@ +Priest Adonius:
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html new file mode 100644 index 0000000000..b9cb198d9e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html @@ -0,0 +1,4 @@ +Priest Adonius:
+I saw that you saved many of the captives. Thank you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html new file mode 100644 index 0000000000..cd6330449e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html @@ -0,0 +1,3 @@ +Priest Adonius:
+You have a kind heart. It's nothing much, but I prepared a small gift for you since you saved so many lives. I hope it's helpful. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java new file mode 100644 index 0000000000..94fe54ced8 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -0,0 +1,222 @@ +/* + * 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 quests.Q00828_EvasBlessing; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * Eva's Blessing (828) + * @URL https://l2wiki.com/Eva%27s_Blessing + * @author Liamxroy + */ +public class Q00828_EvasBlessing extends Quest +{ + // NPC + private static final int ADONIUS = 34097; + private static final int ADONIUS_FINISH = 34152; + private static final int[] CAPTIVES = + { + 34104, + 34105, + 34106, + 34107, + 34108, + 34109, + 34110, + 34111, + 34112, + 34113, + 34114, + 34115, + 34116, + 34117, + 34118, + 34119, + 34120, + 34121, + 34122, + 34123, + 34124, + 34125, + 34126, + 34127, + 34128, + 34129, + 34130, + 34131, + 34132, + 34133, + 34134, + 34135, + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final NpcStringId[] CAPTIVES_TEXT = + { + NpcStringId.WHAT_WHO_ARE_YOU, + NpcStringId.WE_MUST_ALERT_THE_COMMANDER_ABOUT_THESE_INTRUDERS, + NpcStringId.ALERT_EVERYONE, + }; + private static final int MIN_LEVEL = 100; + + public Q00828_EvasBlessing() + { + super(828); + addStartNpc(ADONIUS); + addFirstTalkId(CAPTIVES); + addTalkId(ADONIUS, ADONIUS_FINISH); + addCondMinLevel(MIN_LEVEL, "34097-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34097-02.htm": + case "34097-03.htm": + { + htmltext = event; + break; + } + case "34097-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34152-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-05.html"; + } + else + { + htmltext = "34152-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == ADONIUS)) + { + qs.setState(State.CREATED); + htmltext = "34097-01.htm"; + } + else + { + htmltext = "34097-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + int count = ms.getMemoState(); + count++; + if (count < 20) + { + ms.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.RESCUING_CAPTIVES, count); + member.sendPacket(log); + } + if (count >= 20) + { + ms.setCond(2, true); + } + } + } + npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.deleteMe(); + return "captive-0" + getRandom(1, 3) + ".html"; + } + return null; + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html new file mode 100644 index 0000000000..cad99aec8d --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html @@ -0,0 +1,3 @@ +Captive:
+You saved me! + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html new file mode 100644 index 0000000000..cdc3129637 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html @@ -0,0 +1,3 @@ +Captive:
+How did you find us? + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html new file mode 100644 index 0000000000..89ca8fc614 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html @@ -0,0 +1,3 @@ +Captive:
+Thank you! You are my savior. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm new file mode 100644 index 0000000000..f2a9aa1fba --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+What happened? Why are you here?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm new file mode 100644 index 0000000000..5779721c2b --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I came to Gludin a long time ago. We've been spoiled by peace. I only know how to craft weapons, but don't have the strength to wield a sword.
+But there's something that I found out. Since you helped me out, I'll give you a good piece of information. How does that sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm new file mode 100644 index 0000000000..c965d7669b --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I saw them while hiding. There were some boxes, and they put some valuable stuff in there. Unfortunately, I was waiting on the side since it was too dangerous, but they must have moved them.
+Can you get those valuable items?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm new file mode 100644 index 0000000000..bd57b1dd98 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Not for free, of course. I'll reward you with a better item.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html new file mode 100644 index 0000000000..5b7276a4ef --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Revolutionaries around the Gludin Village have placed boxes of supplies all over the place. I'm looking for the Transport Goods. +Please bring back some if you find them. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html new file mode 100644 index 0000000000..3c55f9b12d --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Did you find the box? Hmm... I guess not yet. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html new file mode 100644 index 0000000000..543ef2c5b4 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Hello fellow, I have not a mission for you today.
+Come back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html new file mode 100644 index 0000000000..87297bd5a6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html @@ -0,0 +1,3 @@ +Transport Goods:
+(You have opened the box.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html new file mode 100644 index 0000000000..72a5fc0820 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Did you find the box? Let me see!
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html new file mode 100644 index 0000000000..e605dd603d --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Great! You don't really need this item, so I'll exchange it for a box with something better in it. Not lying. Why would I? + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java new file mode 100644 index 0000000000..98e4b6d509 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00829_MaphrsSalvation; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Maphr's Salvation (829) + * @URL https://l2wiki.com/Maphr%27s_Salvation + * @author Liamxroy + */ +public class Q00829_MaphrsSalvation extends Quest +{ + // NPC + private static final int BLACKSMITH_KLUTO = 34098; + private static final int BLACKSMITH_KLUTO_FINISH = 34153; + private static final int TRANSPORT_GOODS_NPC = 34102; + // Items + private static final int TRASPORT_GOODS_ITEM = 46373; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00829_MaphrsSalvation() + { + super(829); + addStartNpc(BLACKSMITH_KLUTO); + addFirstTalkId(TRANSPORT_GOODS_NPC); + addTalkId(BLACKSMITH_KLUTO, BLACKSMITH_KLUTO_FINISH); + addCondMinLevel(MIN_LEVEL, "34098-00.htm"); + registerQuestItems(TRASPORT_GOODS_ITEM); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34098-02.htm": + case "34098-03.htm": + { + htmltext = event; + break; + } + case "34098-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34153-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, TRASPORT_GOODS_ITEM); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-05.html"; + } + else + { + htmltext = "34153-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == BLACKSMITH_KLUTO)) + { + qs.setState(State.CREATED); + htmltext = "34098-01.htm"; + } + else + { + htmltext = "34098-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) < 1) + { + giveItems(member, TRASPORT_GOODS_ITEM, 1); + } + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) >= 1) + { + ms.setCond(2, true); + } + } + } + npc.deleteMe(); + return "34102-01.html"; + } + return null; + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm new file mode 100644 index 0000000000..6740b2f4bd --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm @@ -0,0 +1,4 @@ +Yeniche:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm new file mode 100644 index 0000000000..e8a20b8eac --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm @@ -0,0 +1,6 @@ +Yeniche:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm new file mode 100644 index 0000000000..e5eb27a1c1 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm @@ -0,0 +1,4 @@ +Yeniche:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm new file mode 100644 index 0000000000..0ad986a5c6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm @@ -0,0 +1,5 @@ +Yeniche:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html new file mode 100644 index 0000000000..463f551b88 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html @@ -0,0 +1,4 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html new file mode 100644 index 0000000000..61f96bea60 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html @@ -0,0 +1,3 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html new file mode 100644 index 0000000000..9c8af68865 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html @@ -0,0 +1,4 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html new file mode 100644 index 0000000000..fe24ca0680 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html @@ -0,0 +1,4 @@ +Yeniche:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html new file mode 100644 index 0000000000..3dd308dc18 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html @@ -0,0 +1,3 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java new file mode 100644 index 0000000000..7bb02f7361 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java @@ -0,0 +1,209 @@ +/* + * 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 quests.Q00830_TheWayOfTheGiantsPawn; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * The Way of the Giant's Pawn (830) + * @URL https://l2wiki.com/The_Way_of_the_Giant%27s_Pawn + * @author Liamxroy + */ +public class Q00830_TheWayOfTheGiantsPawn extends Quest +{ + // NPC + private static final int YENICHE = 34099; + private static final int YENICHE_FINISH = 34154; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00830_TheWayOfTheGiantsPawn() + { + super(830); + addStartNpc(YENICHE); + addTalkId(YENICHE, YENICHE_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34099-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34099-02.htm": + case "34099-03.htm": + { + htmltext = event; + break; + } + case "34099-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34154-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-05.html"; + } + else + { + htmltext = "34154-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YENICHE)) + { + qs.setState(State.CREATED); + htmltext = "34099-01.htm"; + } + else + { + htmltext = "34099-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + int count = qs.getMemoState(); + count++; + if (count < 45) + { + qs.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.DEFEAT_THE_ELITE_SOLDIERS_OF_THE_REVOLUTIONARIES, count); + member.sendPacket(log); + } + if (count >= 45) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm new file mode 100644 index 0000000000..5240b2d0c0 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Oh, I'm sorry. This box is mine! If you want to hide, go somewhere else.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm new file mode 100644 index 0000000000..5acce7b520 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Good! I guess you are on our side. Then, I have a request. Since you are armed, you must be here for a good reason. How does it sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm new file mode 100644 index 0000000000..80284272af --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+I'm pretty smart, you know. It seems like you are here to get rid of the Ashen Shadow Revolutionaries, and I have the perfect plan for you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm new file mode 100644 index 0000000000..3a48685580 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+They have allied in the name of revolution. It's important that we destroy their symbol of unification. They do have a symbol.
+Sometimes it's better to throw them into confusion by attacking their trust, rather than fight them head-on. It's something I learned from Sayha. I'll give you something good if you help me out.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html new file mode 100644 index 0000000000..f32a67a7d6 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Alright, we have a deal! Please destroy the Revolutionaries' Altars that solidify the unification of the two races. Please bring back 10 Destroyed Mark Fragments as proof.
Of course, they won't just stand and watch. Be ready to fight them! + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html new file mode 100644 index 0000000000..142fe39a68 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Didn't we settle this? Please destroy the Revolutionaries' Altar and collect 10 Destroyed Mark Fragments.
+I'm sure you know you must defeat the intruders. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html new file mode 100644 index 0000000000..8aadb14598 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me.
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html new file mode 100644 index 0000000000..82af657701 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+You're done! Any injuries? Glad to see you are safe. It looks like you've finished the mission.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html new file mode 100644 index 0000000000..b33ebd4fb9 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me. Here's a small gift for your work.
+Well, goodbye. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java new file mode 100644 index 0000000000..4768177df2 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java @@ -0,0 +1,167 @@ +/* + * 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 quests.Q00831_SayhasScheme; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Sayha's Scheme (831) + * @URL https://l2wiki.com/Sayha%27s_Scheme + * @author Liamxroy + */ +public class Q00831_SayhasScheme extends Quest +{ + // NPC + private static final int YUYURIA = 34100; + private static final int YUYURIA_FINISH = 34155; + private static final int ALTAR = 34103; + // Items + private static final int DESTROYED_MARK_FRAGMENT = 46374; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00831_SayhasScheme() + { + super(831); + addStartNpc(YUYURIA); + addTalkId(YUYURIA, YUYURIA_FINISH); + addKillId(ALTAR); + addCondMinLevel(MIN_LEVEL, "34100-00.htm"); + registerQuestItems(DESTROYED_MARK_FRAGMENT); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34100-02.htm": + case "34100-03.htm": + { + htmltext = event; + break; + } + case "34100-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34155-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, DESTROYED_MARK_FRAGMENT); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-05.html"; + } + else + { + htmltext = "34155-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YUYURIA)) + { + qs.setState(State.CREATED); + htmltext = "34100-01.htm"; + } + else + { + htmltext = "34100-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java index 7d69b19c58..9aefce8535 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -185,6 +185,12 @@ import quests.Q00787_TheRoleOfAWatcher.Q00787_TheRoleOfAWatcher; import quests.Q00790_ObtainingFerinsTrust.Q00790_ObtainingFerinsTrust; import quests.Q00817_BlackAteliaResearch.Q00817_BlackAteliaResearch; import quests.Q00823_DisappearedRaceNewFairy.Q00823_DisappearedRaceNewFairy; +import quests.Q00826_InSearchOfTheSecretWeapon.Q00826_InSearchOfTheSecretWeapon; +import quests.Q00827_EinhasadsOrder.Q00827_EinhasadsOrder; +import quests.Q00828_EvasBlessing.Q00828_EvasBlessing; +import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation; +import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn; +import quests.Q00831_SayhasScheme.Q00831_SayhasScheme; import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade; import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra; import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas; @@ -615,6 +621,12 @@ public class QuestMasterHandler Q00790_ObtainingFerinsTrust.class, Q00817_BlackAteliaResearch.class, Q00823_DisappearedRaceNewFairy.class, + Q00826_InSearchOfTheSecretWeapon.class, + Q00827_EinhasadsOrder.class, + Q00828_EvasBlessing.class, + Q00829_MaphrsSalvation.class, + Q00830_TheWayOfTheGiantsPawn.class, + Q00831_SayhasScheme.class, Q00901_HowLavasaurusesAreMade.class, Q00902_ReclaimOurEra.class, Q00903_TheCallOfAntharas.class, diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/items/46300-46399.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/items/46300-46399.xml index 3186cefe01..0841a214f4 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/items/46300-46399.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/items/46300-46399.xml @@ -1396,6 +1396,7 @@ + @@ -1410,6 +1411,7 @@ + @@ -1424,6 +1426,7 @@ + @@ -1438,6 +1441,7 @@ + @@ -1461,7 +1465,11 @@ - + + + + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/08400-08499.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/08400-08499.xml index dcf0f1b21d..143deecb74 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/08400-08499.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/08400-08499.xml @@ -230,7 +230,7 @@ - + @@ -1130,7 +1130,7 @@ - + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/19600-19699.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/19600-19699.xml index 2ff85692d5..095000d4f7 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/19600-19699.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/19600-19699.xml @@ -4,7 +4,7 @@ PLANT - + @@ -39,9 +39,7 @@ - - HUMAN - FEMALE + ETC @@ -49,27 +47,25 @@ - + - - HUMAN - FEMALE + ETC - + - + - - + + @@ -586,6 +582,7 @@ HUMAN FEMALE + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23600-23699.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23600-23699.xml index f226521fa3..2c6c214a58 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23600-23699.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23600-23699.xml @@ -1,9 +1,10 @@ - + - HUMAN + HUMANOID FEMALE + @@ -22,11 +23,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -45,11 +62,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -68,6 +101,21 @@ + + + + + + + + + + + + + + + @@ -111,7 +159,7 @@ - + HUMAN FEMALE @@ -132,7 +180,7 @@ - + HUMAN FEMALE @@ -153,10 +201,11 @@ - + HUMAN FEMALE + @@ -174,7 +223,7 @@ - + HUMAN FEMALE @@ -195,9 +244,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -216,9 +265,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -237,9 +286,9 @@ - + - HUMAN + DIVINE FEMALE @@ -258,9 +307,9 @@ - + - HUMAN + DIVINE FEMALE @@ -280,9 +329,9 @@ - + - HUMAN + DIVINE FEMALE @@ -301,9 +350,9 @@ - + - HUMAN + DEMONIC FEMALE @@ -322,9 +371,9 @@ - + - HUMAN + DIVINE FEMALE @@ -333,6 +382,11 @@ + + + REVOLUTIONARIES + + @@ -344,1047 +398,2967 @@ - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + - + + + REVOLUTIONARIES + + - - - HUMAN - FEMALE - - + + ETC + + + + + - + + + REVOLUTIONARIES + + - - - HUMAN + + DWARF FEMALE - - + + + + - + + + + + + + + - - - HUMAN + + ORC FEMALE - - + + + + - - - - HUMAN - FEMALE - - + + ETC + + + + + + + REVOLUTIONARIES + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + ETC + + + + + + - + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - - - HUMAN - FEMALE - - + + + + + + + + + ETC + + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1401,11 +3375,28 @@ + + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1422,11 +3413,27 @@ + + + + + + + + + + + + + + + - + - HUMAN + HUMANOID FEMALE + @@ -1443,8 +3450,24 @@ + + + + + + + + + + + + + + + + - + HUMAN FEMALE @@ -1465,9 +3488,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -1486,9 +3509,9 @@ - + - HUMAN + BUG FEMALE @@ -1507,12 +3530,12 @@ - + - HUMAN + DIVINE FEMALE - + @@ -1528,9 +3551,9 @@ - + - HUMAN + DIVINE FEMALE @@ -1549,9 +3572,9 @@ - + - HUMAN + DIVINE FEMALE @@ -1570,9 +3593,9 @@ - + - HUMAN + ELEMENTAL FEMALE @@ -1591,9 +3614,9 @@ - + - HUMAN + ELEMENTAL FEMALE @@ -1612,9 +3635,9 @@ - + - HUMAN + HUMANOID FEMALE @@ -1638,7 +3661,7 @@ HUMAN FEMALE - + @@ -1656,10 +3679,11 @@ - HUMAN + HUMANOID FEMALE + - + @@ -1671,7 +3695,7 @@ - + HUMAN FEMALE @@ -1688,7 +3712,7 @@ - + HUMAN FEMALE @@ -1722,7 +3746,7 @@ - + HUMAN FEMALE @@ -1739,7 +3763,7 @@ - + HUMAN FEMALE @@ -1792,8 +3816,9 @@ - HUMAN + UNDEAD FEMALE + @@ -1807,7 +3832,7 @@ - + HUMAN FEMALE diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/34100-34199.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/34100-34199.xml index 12cb0cb61b..11f849d687 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/34100-34199.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/34100-34199.xml @@ -38,7 +38,6 @@ - HUMAN FEMALE @@ -55,17 +54,14 @@ - - HUMAN - FEMALE - + ETC + - diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15100-15199.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15100-15199.xml index 844b3f49bb..32d746cddd 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15100-15199.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15100-15199.xml @@ -1621,7 +1621,7 @@ 0 99 1 - 3600 + 7200 true SELF SINGLE diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/18400-18499.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/18400-18499.xml index 58d7817df8..29f8e5b954 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/18400-18499.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/18400-18499.xml @@ -1218,9 +1218,136 @@ 30000 - icon.skill0000 A1 + 500 + 500 + 2 + 1 + 1 + 46375 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 10 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/zones/custom_script.xml b/L2J_Mobius_3.0_Helios/dist/game/data/zones/custom_script.xml index 7ca961f3b1..05cc2e9671 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/zones/custom_script.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/zones/custom_script.xml @@ -1093,4 +1093,8 @@ + + + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34095.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34095.htm index f7854b5ac7..3ec6e61014 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34095.htm +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/html/default/34095.htm @@ -2,7 +2,7 @@ Gludin as been occupied. There are people who have escaped like me, but I'm not sure if the rest of them are safe.
I thought about helping them, but I had to let others know what happened. That's why I came here.
- + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/instances/AshenShadowRevolutionaries.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/instances/AshenShadowRevolutionaries.xml new file mode 100644 index 0000000000..c348356317 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/instances/AshenShadowRevolutionaries.xml @@ -0,0 +1,286 @@ + + + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html new file mode 100644 index 0000000000..5aca1be111 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34096.html @@ -0,0 +1,5 @@ +Sir Klaus Vesper:
+Sigh... I'm just a knight so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html new file mode 100644 index 0000000000..5f4ab4079e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34097.html @@ -0,0 +1,5 @@ +Priest Adonius:
+Sigh... I'm just a priest so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html new file mode 100644 index 0000000000..2bfd979d25 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34098.html @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+Sigh... I'm just a dwarf so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html new file mode 100644 index 0000000000..239802ac57 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34099.html @@ -0,0 +1,5 @@ +Grand Master Yeniche:
+Sigh... I'm just a wizard so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html new file mode 100644 index 0000000000..8bfbda4a34 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34100.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+Sigh... I'm just a wandener, so I came to Gludin thinking that something good might be up. And then I ran into this. At least I was able to hide in this box. Not everyone was so lucky though.
+By the way, you are on our side, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html new file mode 100644 index 0000000000..ea98498bd4 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101-1.html @@ -0,0 +1,3 @@ +Chest:
+(The box is now open, better speak with the person next to it.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html new file mode 100644 index 0000000000..12834dbdc6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34101.html @@ -0,0 +1,4 @@ +Chest:
+(There's a weird noise coming from inside. It looks like someone is trapped.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html new file mode 100644 index 0000000000..40ad3214bb --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34151.html @@ -0,0 +1,5 @@ +Sir Claus Vesper:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html new file mode 100644 index 0000000000..885393482c --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34152.html @@ -0,0 +1,5 @@ +Adonius:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html new file mode 100644 index 0000000000..a0cfe1b546 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34153.html @@ -0,0 +1,5 @@ +Kluto:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html new file mode 100644 index 0000000000..a2cf88c791 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34154.html @@ -0,0 +1,5 @@ +Yeniche:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html new file mode 100644 index 0000000000..6101db7e9e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/34155.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+You did as I told you. Right?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java new file mode 100644 index 0000000000..64e87b941c --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -0,0 +1,312 @@ +/* + * 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 instances.AshenShadowRevolutionaries; + +import com.l2jmobius.commons.util.CommonUtil; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.instancemanager.ZoneManager; +import com.l2jmobius.gameserver.model.Location; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.instancezone.Instance; +import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect; +import com.l2jmobius.gameserver.model.zone.L2ZoneType; +import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; + +import instances.AbstractInstance; + +/** + * @author Mobius, Liamxroy + * @URL https://l2wiki.com/Ashen_Shadow_Revolutionaries + * @VIDEO https://www.youtube.com/watch?v=ohkxylKJAtQ + */ +public class AshenShadowRevolutionaries extends AbstractInstance +{ + // NPCs + private static final int NETI = 34095; + private static final int TREASURE_CHEST = 34101; + private static final int[] QUEST_GIVERS = + { + 34096, + 34097, + 34098, + 34099, + 34100 + }; + // Monsters + private static final int SPY_DWARF = 23650; + private static final int SIGNALMAN = 23651; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + private static final int[] REVOLUTIONARIES = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + 23648, // Dark Crusader (summon) + 23649, // Banshee Queen (summon) + SIGNALMAN, // Unit Signalman + 23652, // Unit Guard + 34103, // Revolutionaries Altar + }; + // Locations + private static final Location QUEST_GIVER_LOCATION = new Location(-77648, 155665, -3190, 21220); + private static final Location COMMANDER_LOCATION_1 = new Location(-81911, 154244, -3177); + private static final Location COMMANDER_LOCATION_2 = new Location(-83028, 150866, -3128); + private static final Location[] SPY_DWARF_LOCATION = + { + new Location(-81313, 152102, -3124, 21220), // Magic Shop + new Location(-83168, 155408, -3175, 64238), // Blacksmith Shop + new Location(-80000, 153379, -3160, 55621), // Grocery Store + }; + // Misc + private static final NpcStringId[] DWARF_SPY_TEXT = + { + NpcStringId.HOW_DID_YOU_KNOW_I_WAS_HERE, + NpcStringId.WHY_ARE_YOU_SO_LATE_HUH_YOU_ARE_NOT_PART_OF_THE_ASHEN_SHADOW_REVOLUTIONARIES, + NpcStringId.I_LL_HAVE_TO_SILENCE_YOU_IN_ORDER_TO_HIDE_THE_FACT_I_M_A_SPY, + NpcStringId.YOU_THINK_YOU_CAN_LEAVE_THIS_PLACE_ALIVE_AFTER_SEEING_ME, + NpcStringId.WAIT_WAIT_IT_WILL_BE_BETTER_FOR_YOU_IF_YOU_LET_ME_LIVE, + NpcStringId.STOP_I_ONLY_HELPED_THE_ASHEN_SHADOW_REVOLUTIONARIES_FOR_A_LITTLE, + }; + private static final L2ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, L2ScriptZone.class); + private static final int TEMPLATE_ID = 260; + + public AshenShadowRevolutionaries() + { + super(TEMPLATE_ID); + addStartNpc(NETI, TREASURE_CHEST); + addFirstTalkId(TREASURE_CHEST, 34151, 34152, 34153, 34154, 34155); + addFirstTalkId(QUEST_GIVERS); + addTalkId(NETI, TREASURE_CHEST); + addSpawnId(REVOLUTIONARIES); + addSpawnId(SPY_DWARF); + addSpawnId(COMMANDERS); + addAttackId(SPY_DWARF); + addKillId(SIGNALMAN); + addKillId(COMMANDERS); + addExitZoneId(TOWN_ZONE.getId()); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + switch (event) + { + case "enterInstance": + { + enterInstance(player, npc, TEMPLATE_ID); + if (player.getInstanceWorld() != null) + { + startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); + } + return null; + } + case "chest_talk": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.OPEN_THIS_BOX); + startQuestTimer("chest_talk", 10000, npc, null); + } + return null; + } + case "openBox": + { + final Instance world = npc.getInstanceWorld(); + if ((world != null) && world.isStatus(0)) + { + world.setStatus(1); + world.spawnGroup("wave_1"); + final L2Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); + if (questGiver.getId() == 34098) // Blacksmith Kluto + { + world.spawnGroup("goods"); + } + if (questGiver.getId() == 34100) // Yuyuria + { + world.spawnGroup("altars"); + } + if (questGiver.getId() == 34097) // Adonius + { + world.getParameters().set("CAPTIVES", world.spawnGroup("captives")); + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.setTargetable(false); + captive.broadcastInfo(); + } + } + else if (getRandom(10) < 3) + { + addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + } + showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); + } + return null; + } + case "exitInstance": + { + final Instance world = npc.getInstanceWorld(); + if (world != null) + { + world.ejectPlayer(player); + } + return null; + } + } + return super.onAdvEvent(event, npc, player); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + + if ((npc.getId() == TREASURE_CHEST) && (world.getStatus() > 0)) + { + return "34101-1.html"; + } + + return npc.getId() + ".html"; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + final Instance world = npc.getInstanceWorld(); + if (world == null) + { + return null; + } + final int id = npc.getId(); + if (id == SIGNALMAN) + { + addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + } + else if (CommonUtil.contains(COMMANDERS, id)) + { + world.incStatus(); + if (world.getStatus() < 3) + { + world.spawnGroup("wave_2"); + } + else + { + for (L2Npc captive : world.getParameters().getList("CAPTIVES", L2Npc.class)) + { + captive.setTargetable(true); + captive.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE); + captive.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.MAGIC_SQUARE); + captive.broadcastInfo(); + } + world.spawnGroup("wave_3"); + world.finishInstance(); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) + { + if (getRandom(10) < 1) + { + npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + } + return super.onAttack(npc, attacker, damage, isSummon); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setRandomWalking(false); + if (npc.getId() == 34103) + { + npc.setIsImmobilized(true); + npc.detachAI(); + } + return super.onSpawn(npc); + } + + @Override + public String onExitZone(L2Character creature, L2ZoneType zone) + { + final Instance world = creature.getInstanceWorld(); + if (creature.isPlayer() && (world != null)) + { + creature.getActingPlayer().teleToLocation(world.getEnterLocation()); + } + return super.onExitZone(creature, zone); + } + + public static void main(String[] args) + { + new AshenShadowRevolutionaries(); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html new file mode 100644 index 0000000000..a2af30aead --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoGroup.html @@ -0,0 +1,3 @@ +Neti:
+Who you think you are coming here alone? Gather more people to enter. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html new file mode 100644 index 0000000000..e6befcfbe8 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condNoLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too weak. I won't let you enter.
+(Only players of at least level 99 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html new file mode 100644 index 0000000000..6010bd8747 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condOverLevel.html @@ -0,0 +1,4 @@ +Neti:
+Someone in your group is too powerful. I won't let you enter.
+(Only players under level 105 may participate.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html new file mode 100644 index 0000000000..9393d67fb1 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/condSmallGroup.html @@ -0,0 +1,3 @@ +Neti:
+You are too weak. Gather more people. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt index ab3e1e6351..6eb212e55a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt @@ -87,12 +87,6 @@ 816 Plans to Repair the Stronghold 824 Attack the Command Post 825 Hunter Guild Request - Valley of Saints -826 In Search of the Secret Weapon -827 Einhasad's Order -828 Eva's Blessing -829 Maphr's Salvation -830 The Way of the Giant's Pawn -831 Sayha's Scheme 832 Hunter Guild Request - Southern Region, Isle of Prayer 833 Devil's Treasure, Tauti 834 Against Dragonclaw diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm new file mode 100644 index 0000000000..56265cac54 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-00.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+It looks like you are not ready for this mission. Thanks for offering to help, but you'll only get in the way.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm new file mode 100644 index 0000000000..2e45ade55d --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-01.htm @@ -0,0 +1,5 @@ +Refugee Neti:
+The ones who attacked Gludin were Orcs and Dark Elves. I mean, they were revolutionaries, really. They are against the Aden kingdom and King Cadmus. They called themselves the Ashen Shadow Revolutionaries.
+It might be because of the Embryo, but the Kingdom hasn't taken any action. Maybe they think it will be alright since it's happening in Gludin. These revolutionaries aren't to be laughed at. It can get really dangerous.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm new file mode 100644 index 0000000000..5fdbf276fd --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-02.htm @@ -0,0 +1,6 @@ +Refugee Neti:
+I've come to Gludio to let people know about this. Strong adventurers will be able to save Gludin.
+However, I'm not just asking people for help. I can promise that I have something good to give in return as well.
+When I came out of Gludin... I didn't come out empty-handed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm new file mode 100644 index 0000000000..c8a28abad7 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-03.htm @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html new file mode 100644 index 0000000000..fa2dc46a15 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-04.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Alright, thank you. Please put a stop to their ambitions!
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html new file mode 100644 index 0000000000..29e02d4de0 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-05.html @@ -0,0 +1,4 @@ +Refugee Neti:
+Are you still working on it?
+Once you start defeating the members of the Ashen Shadow Revolutionaries, their Commander will appear. Defeat them and get the Ashen Certificates. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html new file mode 100644 index 0000000000..2edae112d3 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-06.html @@ -0,0 +1,4 @@ +Refugee Neti:
+You got all the Ashen Certificates? Good. It will be really helpful. I'll give you the reward I promised.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html new file mode 100644 index 0000000000..54de209442 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-07.html @@ -0,0 +1,3 @@ +Refugee Neti:
+I wasn't sure which weapon you would want, so I'll give you a Shadow Weapon Coupon. You can use it to exchange for any Shadow weapon you want. If you enchant it to + 10, you'll be able to exchange it for a more powerful weapon. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html new file mode 100644 index 0000000000..d13c8159ec --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/34095-08.html @@ -0,0 +1,4 @@ +Refugee Neti:
+They have a very powerful weapon. You will be able to obtain those once you defeat them. It looked like they were enchanting their weapons in their own way.
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java new file mode 100644 index 0000000000..2f411fefc6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00826_InSearchOfTheSecretWeapon/Q00826_InSearchOfTheSecretWeapon.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00826_InSearchOfTheSecretWeapon; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * In Search of the Secret Weapon (826) + * @URL https://l2wiki.com/In_Search_of_the_Secret_Weapon + * @author Mobius, Liamxroy + */ +public class Q00826_InSearchOfTheSecretWeapon extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int[] COMMANDERS = + { + 23653, // Unit Commander 1 + 23654, // Unit Commander 2 + 23655, // Unit Commander 2 + 23656, // Unit Commander 2 + 23657, // Unit Commander 3 + 23658, // Unit Commander 4 + 23659, // Unit Commander 4 + 23660, // Unit Commander 5 + 23661, // Unit Commander 6 + 23662, // Unit Commander 7 + 23663, // Unit Commander 8 + 23664, // Unit Commander 8 + }; + // Items + private static final int ASHEN_CERTIFICATE = 46371; + private static final int SHADOW_WEAPON_COUPON = 46376; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00826_InSearchOfTheSecretWeapon() + { + super(826); + addStartNpc(NETI); + addTalkId(NETI); + addKillId(COMMANDERS); + addCondMinLevel(MIN_LEVEL, "34095-00.htm"); + registerQuestItems(ASHEN_CERTIFICATE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34095-02.htm": + case "34095-03.htm": + { + htmltext = event; + break; + } + case "34095-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34095-07.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, ASHEN_CERTIFICATE); + rewardItems(player, SHADOW_WEAPON_COUPON, 1); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "34095-05.html"; + } + else + { + htmltext = "34095-06.html"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34095-08.html"; + } + else + { + qs.setState(State.CREATED); + htmltext = "34095-01.htm"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm new file mode 100644 index 0000000000..c5143a6a24 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-00.htm @@ -0,0 +1,4 @@ +Sir Klaus Vasper:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm new file mode 100644 index 0000000000..d0a509895f --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-01.htm @@ -0,0 +1,6 @@ +Sir Claus Vasper:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm new file mode 100644 index 0000000000..af0bc1cc6a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-02.htm @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm new file mode 100644 index 0000000000..dae53ed9c2 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-03.htm @@ -0,0 +1,5 @@ +Sir Claus Vasper:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html new file mode 100644 index 0000000000..bcd0580bd6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-04.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html new file mode 100644 index 0000000000..94e1011f55 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-05.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Defeat the Elite Soldiers of the Ashen Shadow Revolutionaries, and collect 30 Revolutionaries' Strategic Map Pieces. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html new file mode 100644 index 0000000000..b3d3f9cd72 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34096-06.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html new file mode 100644 index 0000000000..7198e0127c --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-01.html @@ -0,0 +1,4 @@ +Sir Claus Vasper:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html new file mode 100644 index 0000000000..9730c32a41 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/34151-02.html @@ -0,0 +1,3 @@ +Sir Claus Vasper:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java new file mode 100644 index 0000000000..4e319110f3 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00827_EinhasadsOrder/Q00827_EinhasadsOrder.java @@ -0,0 +1,201 @@ +/* + * 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 quests.Q00827_EinhasadsOrder; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Einhasad's Order (827) + * @URL https://l2wiki.com/Einhasad%27s_Order + * @author Liamxroy + */ +public class Q00827_EinhasadsOrder extends Quest +{ + // NPC + private static final int SIR_KLAUS_VASPER = 34096; + private static final int SIR_KLAUS_VASPER_FINISH = 34151; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int REVOLUTIONARIES_MARK_PIECE = 46372; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00827_EinhasadsOrder() + { + super(827); + addStartNpc(SIR_KLAUS_VASPER); + addTalkId(SIR_KLAUS_VASPER, SIR_KLAUS_VASPER_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34096-00.htm"); + registerQuestItems(REVOLUTIONARIES_MARK_PIECE); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34096-02.htm": + case "34096-03.htm": + { + htmltext = event; + break; + } + case "34096-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34151-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, REVOLUTIONARIES_MARK_PIECE); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == SIR_KLAUS_VASPER) + { + htmltext = "34096-05.html"; + } + else + { + htmltext = "34151-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == SIR_KLAUS_VASPER)) + { + qs.setState(State.CREATED); + htmltext = "34096-01.htm"; + } + else + { + htmltext = "34096-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm new file mode 100644 index 0000000000..d516e5ebc3 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-00.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+You don't plan on increasing the number of captives, do you?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm new file mode 100644 index 0000000000..729db67deb --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-01.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+Gludin Village was very peaceful. For a long time. We've never been attacked like this before. It's not even a military zone.
+That's why we weren't able to fight back. We were unprepared.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm new file mode 100644 index 0000000000..9cd287a9f7 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-02.htm @@ -0,0 +1,4 @@ +Priest Adonius:
+I'm sure the adventurers have come here to defeat the so called revolutionaries. However, there's something more important for me.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm new file mode 100644 index 0000000000..eeb776b3fc --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-03.htm @@ -0,0 +1,5 @@ +Priest Adonius:
+It's to save those who have been captured. They didn't even fight back. They just were in the wrong place at the wrong time.
+Please don't let them die.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html new file mode 100644 index 0000000000..fddb539d9a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-04.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html new file mode 100644 index 0000000000..ff2ef0fe9a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-05.html @@ -0,0 +1,3 @@ +Priest Adonius:
+The captives should be inside the buildings. Please save the captives. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html new file mode 100644 index 0000000000..527467af64 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34097-06.html @@ -0,0 +1,3 @@ +Priest Adonius:
+Come back later. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html new file mode 100644 index 0000000000..b9cb198d9e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-01.html @@ -0,0 +1,4 @@ +Priest Adonius:
+I saw that you saved many of the captives. Thank you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html new file mode 100644 index 0000000000..cd6330449e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/34152-02.html @@ -0,0 +1,3 @@ +Priest Adonius:
+You have a kind heart. It's nothing much, but I prepared a small gift for you since you saved so many lives. I hope it's helpful. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java new file mode 100644 index 0000000000..94fe54ced8 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -0,0 +1,222 @@ +/* + * 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 quests.Q00828_EvasBlessing; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * Eva's Blessing (828) + * @URL https://l2wiki.com/Eva%27s_Blessing + * @author Liamxroy + */ +public class Q00828_EvasBlessing extends Quest +{ + // NPC + private static final int ADONIUS = 34097; + private static final int ADONIUS_FINISH = 34152; + private static final int[] CAPTIVES = + { + 34104, + 34105, + 34106, + 34107, + 34108, + 34109, + 34110, + 34111, + 34112, + 34113, + 34114, + 34115, + 34116, + 34117, + 34118, + 34119, + 34120, + 34121, + 34122, + 34123, + 34124, + 34125, + 34126, + 34127, + 34128, + 34129, + 34130, + 34131, + 34132, + 34133, + 34134, + 34135, + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final NpcStringId[] CAPTIVES_TEXT = + { + NpcStringId.WHAT_WHO_ARE_YOU, + NpcStringId.WE_MUST_ALERT_THE_COMMANDER_ABOUT_THESE_INTRUDERS, + NpcStringId.ALERT_EVERYONE, + }; + private static final int MIN_LEVEL = 100; + + public Q00828_EvasBlessing() + { + super(828); + addStartNpc(ADONIUS); + addFirstTalkId(CAPTIVES); + addTalkId(ADONIUS, ADONIUS_FINISH); + addCondMinLevel(MIN_LEVEL, "34097-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34097-02.htm": + case "34097-03.htm": + { + htmltext = event; + break; + } + case "34097-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34152-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == ADONIUS) + { + htmltext = "34097-05.html"; + } + else + { + htmltext = "34152-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == ADONIUS)) + { + qs.setState(State.CREATED); + htmltext = "34097-01.htm"; + } + else + { + htmltext = "34097-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + int count = ms.getMemoState(); + count++; + if (count < 20) + { + ms.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.RESCUING_CAPTIVES, count); + member.sendPacket(log); + } + if (count >= 20) + { + ms.setCond(2, true); + } + } + } + npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.deleteMe(); + return "captive-0" + getRandom(1, 3) + ".html"; + } + return null; + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html new file mode 100644 index 0000000000..cad99aec8d --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-01.html @@ -0,0 +1,3 @@ +Captive:
+You saved me! + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html new file mode 100644 index 0000000000..cdc3129637 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-02.html @@ -0,0 +1,3 @@ +Captive:
+How did you find us? + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html new file mode 100644 index 0000000000..89ca8fc614 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/captive-03.html @@ -0,0 +1,3 @@ +Captive:
+Thank you! You are my savior. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm new file mode 100644 index 0000000000..f2a9aa1fba --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-00.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+What happened? Why are you here?
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm new file mode 100644 index 0000000000..5779721c2b --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-01.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I came to Gludin a long time ago. We've been spoiled by peace. I only know how to craft weapons, but don't have the strength to wield a sword.
+But there's something that I found out. Since you helped me out, I'll give you a good piece of information. How does that sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm new file mode 100644 index 0000000000..c965d7669b --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-02.htm @@ -0,0 +1,5 @@ +Blacksmith Kluto:
+I saw them while hiding. There were some boxes, and they put some valuable stuff in there. Unfortunately, I was waiting on the side since it was too dangerous, but they must have moved them.
+Can you get those valuable items?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm new file mode 100644 index 0000000000..bd57b1dd98 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-03.htm @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Not for free, of course. I'll reward you with a better item.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html new file mode 100644 index 0000000000..5b7276a4ef --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-04.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Revolutionaries around the Gludin Village have placed boxes of supplies all over the place. I'm looking for the Transport Goods. +Please bring back some if you find them. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html new file mode 100644 index 0000000000..3c55f9b12d --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-05.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Did you find the box? Hmm... I guess not yet. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html new file mode 100644 index 0000000000..543ef2c5b4 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34098-06.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Hello fellow, I have not a mission for you today.
+Come back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html new file mode 100644 index 0000000000..87297bd5a6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34102-01.html @@ -0,0 +1,3 @@ +Transport Goods:
+(You have opened the box.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html new file mode 100644 index 0000000000..72a5fc0820 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-01.html @@ -0,0 +1,4 @@ +Blacksmith Kluto:
+Did you find the box? Let me see!
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html new file mode 100644 index 0000000000..e605dd603d --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/34153-02.html @@ -0,0 +1,3 @@ +Blacksmith Kluto:
+Great! You don't really need this item, so I'll exchange it for a box with something better in it. Not lying. Why would I? + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java new file mode 100644 index 0000000000..98e4b6d509 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00829_MaphrsSalvation/Q00829_MaphrsSalvation.java @@ -0,0 +1,176 @@ +/* + * 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 quests.Q00829_MaphrsSalvation; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Maphr's Salvation (829) + * @URL https://l2wiki.com/Maphr%27s_Salvation + * @author Liamxroy + */ +public class Q00829_MaphrsSalvation extends Quest +{ + // NPC + private static final int BLACKSMITH_KLUTO = 34098; + private static final int BLACKSMITH_KLUTO_FINISH = 34153; + private static final int TRANSPORT_GOODS_NPC = 34102; + // Items + private static final int TRASPORT_GOODS_ITEM = 46373; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00829_MaphrsSalvation() + { + super(829); + addStartNpc(BLACKSMITH_KLUTO); + addFirstTalkId(TRANSPORT_GOODS_NPC); + addTalkId(BLACKSMITH_KLUTO, BLACKSMITH_KLUTO_FINISH); + addCondMinLevel(MIN_LEVEL, "34098-00.htm"); + registerQuestItems(TRASPORT_GOODS_ITEM); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34098-02.htm": + case "34098-03.htm": + { + htmltext = event; + break; + } + case "34098-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34153-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, TRASPORT_GOODS_ITEM); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2175228000L, 5220534); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == BLACKSMITH_KLUTO) + { + htmltext = "34098-05.html"; + } + else + { + htmltext = "34153-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == BLACKSMITH_KLUTO)) + { + qs.setState(State.CREATED); + htmltext = "34098-01.htm"; + } + else + { + htmltext = "34098-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(1))) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState ms = getQuestState(member, false); + if ((ms != null) && ms.isCond(1)) + { + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) < 1) + { + giveItems(member, TRASPORT_GOODS_ITEM, 1); + } + if (getQuestItemsCount(member, TRASPORT_GOODS_ITEM) >= 1) + { + ms.setCond(2, true); + } + } + } + npc.deleteMe(); + return "34102-01.html"; + } + return null; + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm new file mode 100644 index 0000000000..6740b2f4bd --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-00.htm @@ -0,0 +1,4 @@ +Yeniche:
+This village is dangerous. Go hide somewhere.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm new file mode 100644 index 0000000000..e8a20b8eac --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-01.htm @@ -0,0 +1,6 @@ +Yeniche:
+Your courage to come all the way here tells me that you are very powerful indeed. Isn't that right?
+However, this battle will be different from the ones you've faced before. +I'm not looking down on you, so don't think ill of me. I do have some advice. Will that be alright?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm new file mode 100644 index 0000000000..e5eb27a1c1 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-02.htm @@ -0,0 +1,4 @@ +Yeniche:
+They are trained soldiers. Rather than just defeating them, it's important that we find out who is behind and shut them off.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm new file mode 100644 index 0000000000..0ad986a5c6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-03.htm @@ -0,0 +1,5 @@ +Yeniche:
+We have to collect pieces of their strategic plans in order to find out what their goals are and who is behind all of this. The Kingdom will also be more +willing to help us if they can see what's actually happening.
This is the fastest way to end this war.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html new file mode 100644 index 0000000000..463f551b88 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-04.html @@ -0,0 +1,4 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html new file mode 100644 index 0000000000..61f96bea60 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-05.html @@ -0,0 +1,3 @@ +Yeniche:
+Defeat the 45 Elite Soldiers of the Ashen Shadow Revolutionaries. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html new file mode 100644 index 0000000000..9c8af68865 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34099-06.html @@ -0,0 +1,4 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day!
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html new file mode 100644 index 0000000000..fe24ca0680 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-01.html @@ -0,0 +1,4 @@ +Yeniche:
+Did you succeed? I hope you have some good news.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html new file mode 100644 index 0000000000..3dd308dc18 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/34154-02.html @@ -0,0 +1,3 @@ +Yeniche:
+Great job. Their ambitions will never see the light of day! + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java new file mode 100644 index 0000000000..7bb02f7361 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00830_TheWayOfTheGiantsPawn/Q00830_TheWayOfTheGiantsPawn.java @@ -0,0 +1,209 @@ +/* + * 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 quests.Q00830_TheWayOfTheGiantsPawn; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; + +/** + * The Way of the Giant's Pawn (830) + * @URL https://l2wiki.com/The_Way_of_the_Giant%27s_Pawn + * @author Liamxroy + */ +public class Q00830_TheWayOfTheGiantsPawn extends Quest +{ + // NPC + private static final int YENICHE = 34099; + private static final int YENICHE_FINISH = 34154; + private static final int[] UNIT_ELITE_SOLDIER = + { + 23616, // Unit 1 Elite Soldier + 23617, // Unit 2 Elite Soldier + 23618, // Unit 3 Elite Soldier + 23619, // Unit 4 Elite Soldier + 23620, // Unit 5 Elite Soldier + 23621, // Unit 6 Elite Soldier + 23622, // Unit 7 Elite Soldier + 23623, // Unit 8 Elite Soldier + 23624, // Unit 1 Elite Soldier + 23625, // Unit 2 Elite Soldier + 23626, // Unit 3 Elite Soldier + 23627, // Unit 4 Elite Soldier + 23628, // Unit 5 Elite Soldier + 23629, // Unit 6 Elite Soldier + 23630, // Unit 7 Elite Soldier + 23631, // Unit 8 Elite Soldier + 23632, // Unit 1 Elite Soldier + 23633, // Unit 2 Elite Soldier + 23634, // Unit 3 Elite Soldier + 23635, // Unit 4 Elite Soldier + 23636, // Unit 5 Elite Soldier + 23637, // Unit 6 Elite Soldier + 23638, // Unit 7 Elite Soldier + 23639, // Unit 8 Elite Soldier + 23640, // Unit 1 Elite Soldier + 23641, // Unit 2 Elite Soldier + 23642, // Unit 3 Elite Soldier + 23643, // Unit 4 Elite Soldier + 23644, // Unit 5 Elite Soldier + 23645, // Unit 6 Elite Soldier + 23646, // Unit 7 Elite Soldier + 23647, // Unit 8 Elite Soldier + }; + // Items + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00830_TheWayOfTheGiantsPawn() + { + super(830); + addStartNpc(YENICHE); + addTalkId(YENICHE, YENICHE_FINISH); + addKillId(UNIT_ELITE_SOLDIER); + addCondMinLevel(MIN_LEVEL, "34099-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34099-02.htm": + case "34099-03.htm": + { + htmltext = event; + break; + } + case "34099-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34154-02.html": + { + if (qs.isCond(2)) + { + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YENICHE) + { + htmltext = "34099-05.html"; + } + else + { + htmltext = "34154-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YENICHE)) + { + qs.setState(State.CREATED); + htmltext = "34099-01.htm"; + } + else + { + htmltext = "34099-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + int count = qs.getMemoState(); + count++; + if (count < 45) + { + qs.setMemoState(count); + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.DEFEAT_THE_ELITE_SOLDIERS_OF_THE_REVOLUTIONARIES, count); + member.sendPacket(log); + } + if (count >= 45) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm new file mode 100644 index 0000000000..5240b2d0c0 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-00.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Oh, I'm sorry. This box is mine! If you want to hide, go somewhere else.
+(Only characters above Lv. 100.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm new file mode 100644 index 0000000000..5acce7b520 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-01.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Good! I guess you are on our side. Then, I have a request. Since you are armed, you must be here for a good reason. How does it sound?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm new file mode 100644 index 0000000000..80284272af --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-02.htm @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+I'm pretty smart, you know. It seems like you are here to get rid of the Ashen Shadow Revolutionaries, and I have the perfect plan for you.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm new file mode 100644 index 0000000000..3a48685580 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-03.htm @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+They have allied in the name of revolution. It's important that we destroy their symbol of unification. They do have a symbol.
+Sometimes it's better to throw them into confusion by attacking their trust, rather than fight them head-on. It's something I learned from Sayha. I'll give you something good if you help me out.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html new file mode 100644 index 0000000000..f32a67a7d6 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-04.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Alright, we have a deal! Please destroy the Revolutionaries' Altars that solidify the unification of the two races. Please bring back 10 Destroyed Mark Fragments as proof.
Of course, they won't just stand and watch. Be ready to fight them! + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html new file mode 100644 index 0000000000..142fe39a68 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-05.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+Didn't we settle this? Please destroy the Revolutionaries' Altar and collect 10 Destroyed Mark Fragments.
+I'm sure you know you must defeat the intruders. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html new file mode 100644 index 0000000000..8aadb14598 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34100-06.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me.
+Come Back tomorrow. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html new file mode 100644 index 0000000000..82af657701 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-01.html @@ -0,0 +1,4 @@ +Wanderer Yuyuria:
+You're done! Any injuries? Glad to see you are safe. It looks like you've finished the mission.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html new file mode 100644 index 0000000000..b33ebd4fb9 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/34155-02.html @@ -0,0 +1,5 @@ +Wanderer Yuyuria:
+I was born and raised in Aden, and it saddens me seeing it in so much chaos.
+I was sucked into this, but I really wanted to put a stop. I was unable to do it by myself but you helped me. Here's a small gift for your work.
+Well, goodbye. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java new file mode 100644 index 0000000000..4768177df2 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00831_SayhasScheme/Q00831_SayhasScheme.java @@ -0,0 +1,167 @@ +/* + * 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 quests.Q00831_SayhasScheme; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Sayha's Scheme (831) + * @URL https://l2wiki.com/Sayha%27s_Scheme + * @author Liamxroy + */ +public class Q00831_SayhasScheme extends Quest +{ + // NPC + private static final int YUYURIA = 34100; + private static final int YUYURIA_FINISH = 34155; + private static final int ALTAR = 34103; + // Items + private static final int DESTROYED_MARK_FRAGMENT = 46374; + private static final int GLUDIN_HERO_REWARD = 46375; + // Misc + private static final int MIN_LEVEL = 100; + + public Q00831_SayhasScheme() + { + super(831); + addStartNpc(YUYURIA); + addTalkId(YUYURIA, YUYURIA_FINISH); + addKillId(ALTAR); + addCondMinLevel(MIN_LEVEL, "34100-00.htm"); + registerQuestItems(DESTROYED_MARK_FRAGMENT); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "34100-02.htm": + case "34100-03.htm": + { + htmltext = event; + break; + } + case "34100-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "34155-02.html": + { + if (qs.isCond(2)) + { + takeItems(player, -1, DESTROYED_MARK_FRAGMENT); + rewardItems(player, GLUDIN_HERO_REWARD, 1); + addExpAndSp(player, 2422697985L, 5814450); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-01.htm"; + } + break; + } + case State.STARTED: + { + if (npc.getId() == YUYURIA) + { + htmltext = "34100-05.html"; + } + else + { + htmltext = "34155-01.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable() && (npc.getId() == YUYURIA)) + { + qs.setState(State.CREATED); + htmltext = "34100-01.htm"; + } + else + { + htmltext = "34100-06.html"; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + List members = new ArrayList<>(); + if (player.getParty() != null) + { + members = player.getParty().getMembers(); + } + else + { + members.add(player); + } + for (L2PcInstance member : members) + { + final QuestState qs = getQuestState(member, false); + if ((qs != null) && qs.isCond(1) && member.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true)) + { + if (giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1.0, true)) + { + qs.setCond(2, true); + } + } + } + return super.onKill(npc, player, isSummon); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java index c004c675fe..a45834aba6 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -185,6 +185,12 @@ import quests.Q00787_TheRoleOfAWatcher.Q00787_TheRoleOfAWatcher; import quests.Q00790_ObtainingFerinsTrust.Q00790_ObtainingFerinsTrust; import quests.Q00817_BlackAteliaResearch.Q00817_BlackAteliaResearch; import quests.Q00823_DisappearedRaceNewFairy.Q00823_DisappearedRaceNewFairy; +import quests.Q00826_InSearchOfTheSecretWeapon.Q00826_InSearchOfTheSecretWeapon; +import quests.Q00827_EinhasadsOrder.Q00827_EinhasadsOrder; +import quests.Q00828_EvasBlessing.Q00828_EvasBlessing; +import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation; +import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn; +import quests.Q00831_SayhasScheme.Q00831_SayhasScheme; import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade; import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra; import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas; @@ -612,6 +618,12 @@ public class QuestMasterHandler Q00790_ObtainingFerinsTrust.class, Q00817_BlackAteliaResearch.class, Q00823_DisappearedRaceNewFairy.class, + Q00826_InSearchOfTheSecretWeapon.class, + Q00827_EinhasadsOrder.class, + Q00828_EvasBlessing.class, + Q00829_MaphrsSalvation.class, + Q00830_TheWayOfTheGiantsPawn.class, + Q00831_SayhasScheme.class, Q00901_HowLavasaurusesAreMade.class, Q00902_ReclaimOurEra.class, Q00903_TheCallOfAntharas.class, diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/items/46300-46399.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/items/46300-46399.xml index cc1137dcbb..90beef38cc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/items/46300-46399.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/items/46300-46399.xml @@ -1396,6 +1396,7 @@ + @@ -1410,6 +1411,7 @@ + @@ -1424,6 +1426,7 @@ + @@ -1438,6 +1441,7 @@ + @@ -1461,7 +1465,11 @@ - + + + + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/08400-08499.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/08400-08499.xml index f23f8b8d1a..f4b2db134a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/08400-08499.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/08400-08499.xml @@ -230,7 +230,7 @@ - + @@ -1130,7 +1130,7 @@ - + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/19600-19699.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/19600-19699.xml index 13f26159de..d35dd05876 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/19600-19699.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/19600-19699.xml @@ -39,9 +39,7 @@ - - HUMAN - FEMALE + ETC @@ -49,27 +47,25 @@ - + - - HUMAN - FEMALE + ETC - + - + - - + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23600-23699.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23600-23699.xml index f3ca465cbb..2c6c214a58 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23600-23699.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23600-23699.xml @@ -382,6 +382,11 @@ + + + REVOLUTIONARIES + + @@ -394,17 +399,41 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -422,17 +451,42 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -450,17 +504,39 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -478,17 +554,41 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -506,17 +606,42 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -534,17 +659,47 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -562,17 +717,23 @@ - - HUMAN - FEMALE - - + ETC + + + - + + + + + + REVOLUTIONARIES + + @@ -590,17 +751,46 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -618,17 +808,41 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -646,17 +860,42 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -674,17 +913,39 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -702,17 +963,41 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -730,17 +1015,42 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -758,17 +1068,47 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -786,17 +1126,23 @@ - - HUMAN - FEMALE - - + ETC + + + - + + + + + + REVOLUTIONARIES + + @@ -814,17 +1160,48 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -842,17 +1219,41 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -870,17 +1271,42 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -898,17 +1324,39 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -926,17 +1374,41 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -954,17 +1426,42 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -982,17 +1479,47 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1010,17 +1537,23 @@ - - HUMAN - FEMALE - - + ETC + + + - + + + + + + REVOLUTIONARIES + + @@ -1038,17 +1571,48 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1066,17 +1630,41 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1094,17 +1682,42 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1122,17 +1735,39 @@ - - HUMAN - FEMALE - - + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1150,17 +1785,41 @@ - - HUMAN - FEMALE - - + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1178,17 +1837,42 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1206,17 +1890,47 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1234,17 +1948,23 @@ - - HUMAN - FEMALE - - + ETC + + + - + + + + + + REVOLUTIONARIES + + @@ -1262,17 +1982,48 @@ - - HUMAN - FEMALE - - + + + + + + + + ETC + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1290,59 +2041,67 @@ - - HUMAN - FEMALE - - + ETC + + + + - + + + REVOLUTIONARIES + + - - HUMAN - FEMALE + ETC - - + + + + - + + + REVOLUTIONARIES + + - - HUMAN + DWARF FEMALE - - + + + + - - + @@ -1350,33 +2109,38 @@ - - HUMAN + ORC FEMALE - - + + + + - - - HUMAN - FEMALE - - + ETC + + + + + + + REVOLUTIONARIES + + @@ -1384,18 +2148,42 @@ - - HUMAN - FEMALE + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1410,25 +2198,50 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + - + @@ -1436,25 +2249,45 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + - + @@ -1462,25 +2295,50 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + - + @@ -1488,18 +2346,40 @@ - - HUMAN - FEMALE + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1514,18 +2394,42 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1540,18 +2444,42 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1566,18 +2494,43 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1592,18 +2545,48 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1618,18 +2601,26 @@ - - HUMAN - FEMALE + ETC - - + + + + + - + + + + + + REVOLUTIONARIES + + @@ -1644,18 +2635,49 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1670,18 +2692,49 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1696,18 +2749,42 @@ - - HUMAN - FEMALE + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1722,25 +2799,50 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + - + @@ -1748,25 +2850,50 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + - + @@ -1774,25 +2901,50 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + - + @@ -1800,18 +2952,40 @@ - - HUMAN - FEMALE + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1826,18 +3000,42 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1852,18 +3050,42 @@ - - HUMAN - FEMALE + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1878,18 +3100,43 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1904,18 +3151,48 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1930,18 +3207,26 @@ - - HUMAN - FEMALE + ETC - - + + + + + - + + + + + + REVOLUTIONARIES + + @@ -1956,18 +3241,49 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + @@ -1982,18 +3298,49 @@ - - HUMAN - FEMALE + + + + + + + + ETC - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + REVOLUTIONARIES + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/34100-34199.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/34100-34199.xml index f6a24c342a..c609ad127b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/34100-34199.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/34100-34199.xml @@ -38,7 +38,6 @@ - HUMAN FEMALE @@ -55,17 +54,14 @@ - - HUMAN - FEMALE - + ETC + - diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15100-15199.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15100-15199.xml index 844b3f49bb..32d746cddd 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15100-15199.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15100-15199.xml @@ -1621,7 +1621,7 @@ 0 99 1 - 3600 + 7200 true SELF SINGLE diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/18400-18499.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/18400-18499.xml index 1ef2065de7..e5d5c349b7 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/18400-18499.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/18400-18499.xml @@ -1218,9 +1218,136 @@ 30000 - icon.skill0000 A1 + 500 + 500 + 2 + 1 + 1 + 46375 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 10 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/zones/custom_script.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/zones/custom_script.xml index 7ca961f3b1..05cc2e9671 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/zones/custom_script.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/zones/custom_script.xml @@ -1093,4 +1093,8 @@ + + + + \ No newline at end of file