diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java index e3d0173a43..a0bcce3bb7 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java @@ -77,7 +77,7 @@ public class Q00382_KailsMagicCoin extends Quest switch (event) { - case "30386-03.htm": + case "30687-03.htm": { if (qs.isCreated()) { @@ -86,8 +86,8 @@ public class Q00382_KailsMagicCoin extends Quest } break; } - case "30386-05.htm": - case "30386-06.htm": + case "30687-05.htm": + case "30687-06.htm": { if (qs.isStarted()) { diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java index e3d0173a43..a0bcce3bb7 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java @@ -77,7 +77,7 @@ public class Q00382_KailsMagicCoin extends Quest switch (event) { - case "30386-03.htm": + case "30687-03.htm": { if (qs.isCreated()) { @@ -86,8 +86,8 @@ public class Q00382_KailsMagicCoin extends Quest } break; } - case "30386-05.htm": - case "30386-06.htm": + case "30687-05.htm": + case "30687-06.htm": { if (qs.isStarted()) { diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java index f328e9f862..9dc154ddad 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java +++ b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java @@ -606,7 +606,7 @@ public class Q00334_TheWishingPotion extends Quest case 1: { addSpawn(FAIRY_RUPINA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: @@ -614,19 +614,19 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_CERTIFICATE_OF_ROYALTY, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -642,25 +642,25 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { addSpawn(DLORD_ALEXANDROSANCHES, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -673,19 +673,19 @@ public class Q00334_TheWishingPotion extends Quest case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_ANCIENT_CROWN, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java index f0339674f9..01879be71f 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java +++ b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java @@ -78,7 +78,7 @@ public class Q00382_KailsMagicCoin extends Quest switch (event) { - case "30386-03.htm": + case "30687-03.htm": { if (qs.isCreated()) { @@ -87,8 +87,8 @@ public class Q00382_KailsMagicCoin extends Quest } break; } - case "30386-05.htm": - case "30386-06.htm": + case "30687-05.htm": + case "30687-06.htm": { if (qs.isStarted()) { diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java index fc2a0cd47b..1448942be1 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java +++ b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java @@ -138,10 +138,10 @@ public class Q00628_HuntGoldenRam extends Quest public String onKill(Npc npc, Player killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 1, npc); - if (qs != null) + if ((qs != null) && !qs.isCond(3)) { final ItemChanceHolder item = MOBS_DROP_CHANCES.get(npc.getId()); - if ((item.getCount() <= qs.getCond()) && !qs.isCond(3)) + if (item.getCount() <= qs.getCond()) { giveItemRandomly(qs.getPlayer(), npc, item.getId(), 1, REQUIRED_ITEM_COUNT, item.getChance(), true); } diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index c6408cb309..ac9a738196 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 52c74f5945..d1859cb792 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -19,6 +19,7 @@ package instances.DarkCloudMansion; import java.util.ArrayList; import java.util.List; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.model.Location; @@ -615,6 +616,7 @@ public class DarkCloudMansion extends AbstractInstance { thisNpc = new DMCNpc(); thisNpc.npc = addSpawn(SC, x, y, -6115, 16215, false, 0, false, world.getInstanceId()); + thisNpc.npc.disableCoreAI(true); thisNpc.status = templist[yy][xx]; thisNpc.order = yy; forthRoom.npcList.add(thisNpc); @@ -656,6 +658,7 @@ public class DarkCloudMansion extends AbstractInstance thisNpc = new DMCNpc(); thisNpc.npc = addSpawn(BS[idx], x, 182145, -6117, 48810, false, 0, false, world.getInstanceId()); thisNpc.npc.setRandomWalking(false); + thisNpc.npc.disableCoreAI(true); thisNpc.order = idx; thisNpc.status = temp[idx]; thisNpc.count = 0; @@ -759,6 +762,8 @@ public class DarkCloudMansion extends AbstractInstance else { fifthRoom.reset = 1; + mob.npc.disableCoreAI(false); + mob.npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _faildChat[getRandom(_faildChat.length)])); startQuestTimer("decayChatBelethSamples", 4000, npc, player); startQuestTimer("decayBelethSamples", 4500, npc, player); @@ -1018,9 +1023,17 @@ public class DarkCloudMansion extends AbstractInstance final DMCRoom forthRoom = world.getParameters().getObject("ForthRoom", DMCRoom.class); for (DMCNpc mob : forthRoom.npcList) { - if ((mob.npc == npc) && mob.npc.isInvul() && (getRandom(100) < 12)) + if (mob.npc == npc) { - addSpawn(BM[getRandom(BM.length)], attacker.getX(), attacker.getY(), attacker.getZ(), 0, false, 0, false, world.getInstanceId()); + if (mob.npc.isCoreAIDisabled()) + { + mob.npc.disableCoreAI(false); + mob.npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, attacker); + } + if (mob.npc.isInvul() && (getRandom(100) < 12)) + { + addSpawn(BM[getRandom(BM.length)], attacker.getX(), attacker.getY(), attacker.getZ(), 0, false, 0, false, world.getInstanceId()); + } } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java index f328e9f862..9dc154ddad 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java @@ -606,7 +606,7 @@ public class Q00334_TheWishingPotion extends Quest case 1: { addSpawn(FAIRY_RUPINA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: @@ -614,19 +614,19 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_CERTIFICATE_OF_ROYALTY, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -642,25 +642,25 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { addSpawn(DLORD_ALEXANDROSANCHES, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -673,19 +673,19 @@ public class Q00334_TheWishingPotion extends Quest case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_ANCIENT_CROWN, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java index f0339674f9..01879be71f 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java @@ -78,7 +78,7 @@ public class Q00382_KailsMagicCoin extends Quest switch (event) { - case "30386-03.htm": + case "30687-03.htm": { if (qs.isCreated()) { @@ -87,8 +87,8 @@ public class Q00382_KailsMagicCoin extends Quest } break; } - case "30386-05.htm": - case "30386-06.htm": + case "30687-05.htm": + case "30687-06.htm": { if (qs.isStarted()) { diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java index fc2a0cd47b..1448942be1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java @@ -138,10 +138,10 @@ public class Q00628_HuntGoldenRam extends Quest public String onKill(Npc npc, Player killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 1, npc); - if (qs != null) + if ((qs != null) && !qs.isCond(3)) { final ItemChanceHolder item = MOBS_DROP_CHANCES.get(npc.getId()); - if ((item.getCount() <= qs.getCond()) && !qs.isCond(3)) + if (item.getCount() <= qs.getCond()) { giveItemRandomly(qs.getPlayer(), npc, item.getId(), 1, REQUIRED_ITEM_COUNT, item.getChance(), true); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 52c74f5945..d1859cb792 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -19,6 +19,7 @@ package instances.DarkCloudMansion; import java.util.ArrayList; import java.util.List; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.model.Location; @@ -615,6 +616,7 @@ public class DarkCloudMansion extends AbstractInstance { thisNpc = new DMCNpc(); thisNpc.npc = addSpawn(SC, x, y, -6115, 16215, false, 0, false, world.getInstanceId()); + thisNpc.npc.disableCoreAI(true); thisNpc.status = templist[yy][xx]; thisNpc.order = yy; forthRoom.npcList.add(thisNpc); @@ -656,6 +658,7 @@ public class DarkCloudMansion extends AbstractInstance thisNpc = new DMCNpc(); thisNpc.npc = addSpawn(BS[idx], x, 182145, -6117, 48810, false, 0, false, world.getInstanceId()); thisNpc.npc.setRandomWalking(false); + thisNpc.npc.disableCoreAI(true); thisNpc.order = idx; thisNpc.status = temp[idx]; thisNpc.count = 0; @@ -759,6 +762,8 @@ public class DarkCloudMansion extends AbstractInstance else { fifthRoom.reset = 1; + mob.npc.disableCoreAI(false); + mob.npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _faildChat[getRandom(_faildChat.length)])); startQuestTimer("decayChatBelethSamples", 4000, npc, player); startQuestTimer("decayBelethSamples", 4500, npc, player); @@ -1018,9 +1023,17 @@ public class DarkCloudMansion extends AbstractInstance final DMCRoom forthRoom = world.getParameters().getObject("ForthRoom", DMCRoom.class); for (DMCNpc mob : forthRoom.npcList) { - if ((mob.npc == npc) && mob.npc.isInvul() && (getRandom(100) < 12)) + if (mob.npc == npc) { - addSpawn(BM[getRandom(BM.length)], attacker.getX(), attacker.getY(), attacker.getZ(), 0, false, 0, false, world.getInstanceId()); + if (mob.npc.isCoreAIDisabled()) + { + mob.npc.disableCoreAI(false); + mob.npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, attacker); + } + if (mob.npc.isInvul() && (getRandom(100) < 12)) + { + addSpawn(BM[getRandom(BM.length)], attacker.getX(), attacker.getY(), attacker.getZ(), 0, false, 0, false, world.getInstanceId()); + } } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java index f328e9f862..9dc154ddad 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00334_TheWishingPotion/Q00334_TheWishingPotion.java @@ -606,7 +606,7 @@ public class Q00334_TheWishingPotion extends Quest case 1: { addSpawn(FAIRY_RUPINA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: @@ -614,19 +614,19 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); addSpawn(GRIMA, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_CERTIFICATE_OF_ROYALTY, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -642,25 +642,25 @@ public class Q00334_TheWishingPotion extends Quest addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); addSpawn(SUCCUBUS_OF_SEDUCTION, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { addSpawn(DLORD_ALEXANDROSANCHES, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } @@ -673,19 +673,19 @@ public class Q00334_TheWishingPotion extends Quest case 2: { giveAdena(player, 10000, true); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 3: { giveItems(player, Q_ANCIENT_CROWN, 1); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } case 4: { addSpawn(WISDOM_CHEST, npc, true, 0, false); - qs.set("Exchange", 0); + qs.set(EXCHANGE, 0); break; } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java index f0339674f9..01879be71f 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00382_KailsMagicCoin/Q00382_KailsMagicCoin.java @@ -78,7 +78,7 @@ public class Q00382_KailsMagicCoin extends Quest switch (event) { - case "30386-03.htm": + case "30687-03.htm": { if (qs.isCreated()) { @@ -87,8 +87,8 @@ public class Q00382_KailsMagicCoin extends Quest } break; } - case "30386-05.htm": - case "30386-06.htm": + case "30687-05.htm": + case "30687-06.htm": { if (qs.isStarted()) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java index fc2a0cd47b..1448942be1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java @@ -138,10 +138,10 @@ public class Q00628_HuntGoldenRam extends Quest public String onKill(Npc npc, Player killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 1, npc); - if (qs != null) + if ((qs != null) && !qs.isCond(3)) { final ItemChanceHolder item = MOBS_DROP_CHANCES.get(npc.getId()); - if ((item.getCount() <= qs.getCond()) && !qs.isCond(3)) + if (item.getCount() <= qs.getCond()) { giveItemRandomly(qs.getPlayer(), npc, item.getId(), 1, REQUIRED_ITEM_COUNT, item.getChance(), true); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java index 3a8d24397a..6f6013cac1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00648_AnIceMerchantsDream/Q00648_AnIceMerchantsDream.java @@ -348,7 +348,7 @@ public class Q00648_AnIceMerchantsDream extends Quest if (hasQuestItems(player, SILVER_ICE_CRYSTAL)) { final int val = qs.getInt("ex") % 10; - if (val == 0) + if (!qs.isSet("ex") || (val == 0)) { htmltext = "32023-03.html"; qs.set("ex", 0); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10292_SevenSignsGirlOfDoubt/Q10292_SevenSignsGirlOfDoubt.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10292_SevenSignsGirlOfDoubt/Q10292_SevenSignsGirlOfDoubt.java index f2916027ee..5f7adc44af 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10292_SevenSignsGirlOfDoubt/Q10292_SevenSignsGirlOfDoubt.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10292_SevenSignsGirlOfDoubt/Q10292_SevenSignsGirlOfDoubt.java @@ -43,7 +43,6 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest private static final int MIN_LEVEL = 81; // Variables private static final String I_QUEST1 = "I_QUEST1"; - private static final String KILLCOUNT_VAR = "killCount"; // Monster private static final int CREATURE_OF_THE_DUSK1 = 27422; private static final int CREATURE_OF_THE_DUSK2 = 27424; @@ -142,6 +141,7 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest { if (!npc.getVariables().getBoolean(I_QUEST1, false)) { + qs.set("killCount", 0); npc.getVariables().set(I_QUEST1, true); addSpawn(CREATURE_OF_THE_DUSK1, 89440, -238016, -9632, getRandom(360), false, 0, false, player.getInstanceId()); addSpawn(CREATURE_OF_THE_DUSK2, 89524, -238131, -9632, getRandom(360), false, 0, false, player.getInstanceId()); @@ -208,16 +208,13 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest } else { - if (qs.getInt(KILLCOUNT_VAR) == 1) + final int killCount = qs.getInt("killCount") + 1; + qs.set("killCount", killCount); + if (killCount == 2) { - qs.unset(KILLCOUNT_VAR); qs.setMemoState(6); qs.setCond(6); } - else - { - qs.set(KILLCOUNT_VAR, 1); - } } } return super.onKill(npc, player, isSummon); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/2ndClass/Prophet.xml b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/2ndClass/Prophet.xml index 64ebc88372..1eabb18e4b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/2ndClass/Prophet.xml +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/2ndClass/Prophet.xml @@ -206,7 +206,6 @@ - @@ -242,7 +241,6 @@ - @@ -282,7 +280,6 @@ - diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/3rdClass/Dreadnought.xml b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/3rdClass/Dreadnought.xml index e7d99d657a..eeee8543b2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/3rdClass/Dreadnought.xml +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/skillTrees/3rdClass/Dreadnought.xml @@ -20,11 +20,11 @@ - + diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/armorsets/friendship.xml b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/armorsets/friendship.xml index 15160204a4..fbbbb59737 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/armorsets/friendship.xml +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/armorsets/friendship.xml @@ -408,4 +408,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file