diff --git a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java index 54922a8fd6..1002f1336d 100644 --- a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java +++ b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java @@ -121,8 +121,11 @@ public final class Q10360_CertificationOfFate extends Quest case "30288-04.htm": case "30289-04.htm": { - st.startQuest(); - htmltext = event; + if (!player.isSubClassActive()) + { + st.startQuest(); + htmltext = event; + } break; } case "teleport": @@ -201,6 +204,11 @@ public final class Q10360_CertificationOfFate extends Quest } else if (event.startsWith("classChange;")) { + if (player.isSubClassActive()) + { + return null; + } + final ClassId newClassId = ClassId.getClassId(Integer.parseInt(event.replace("classChange;", ""))); final ClassId currentClassId = player.getClassId(); diff --git a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java index 255e4cdc27..f5717e2b8d 100644 --- a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java +++ b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java @@ -206,7 +206,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.CLOUD_BREAKER; if (qs.isCond(9) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -223,7 +226,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.MARAUDER; if (qs.isCond(8) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java index 2cf1d78daa..23a2452813 100644 --- a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java +++ b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java @@ -212,7 +212,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.STRATOMANCER; if (qs.isCond(10) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -231,7 +234,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.RIPPER; if (qs.isCond(11) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java index 2020a1e4c5..2a64b35cae 100644 --- a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java +++ b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java @@ -319,7 +319,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.EVISCERATOR; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -338,7 +341,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.SAYHA_SEER; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/ThirdClassTransferQuest.java b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/ThirdClassTransferQuest.java index 89d56a5727..b68be960b5 100644 --- a/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/ThirdClassTransferQuest.java +++ b/L2J_Mobius_Ertheia/dist/game/data/scripts/quests/ThirdClassTransferQuest.java @@ -235,7 +235,10 @@ public abstract class ThirdClassTransferQuest extends Quest addSkillCastDesire(npc, player, SHOW_SKILL.getSkill(), 23); player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_YOUR_THIRD_CLASS_TRANSFER_QUEST); player.broadcastSocialAction(3); - player.setBaseClass(newClassId); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClassId); + } player.setClassId(newClassId.getId()); player.store(false); player.broadcastUserInfo(); diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java index add08783bd..1e498b0c25 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java @@ -127,8 +127,11 @@ public final class Q10360_CertificationOfFate extends Quest case "30288-04.htm": case "30289-04.htm": { - st.startQuest(); - htmltext = event; + if (!player.isSubClassActive()) + { + st.startQuest(); + htmltext = event; + } break; } case "teleport": @@ -207,6 +210,11 @@ public final class Q10360_CertificationOfFate extends Quest } else if (event.startsWith("classChange;")) { + if (player.isSubClassActive()) + { + return null; + } + final ClassId newClassId = ClassId.getClassId(Integer.parseInt(event.replace("classChange;", ""))); final ClassId currentClassId = player.getClassId(); diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java index 8ba7bfbe7b..b2059c0ca7 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java @@ -210,7 +210,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.CLOUD_BREAKER; if (qs.isCond(9) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -230,7 +233,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.MARAUDER; if (qs.isCond(8) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java index bd9cc55b28..1b00e68886 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java @@ -212,7 +212,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.STRATOMANCER; if (qs.isCond(10) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -231,7 +234,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.RIPPER; if (qs.isCond(11) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java index 1ff9466c5b..e14b747b74 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java @@ -319,7 +319,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.EVISCERATOR; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -338,7 +341,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.SAYHA_SEER; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java index 200dfa969f..173503ec33 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java @@ -237,7 +237,10 @@ public abstract class ThirdClassTransferQuest extends Quest addSkillCastDesire(npc, player, SHOW_SKILL.getSkill(), 23); player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_YOUR_THIRD_CLASS_TRANSFER_QUEST); player.broadcastSocialAction(3); - player.setBaseClass(newClassId); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClassId); + } player.setClassId(newClassId.getId()); player.store(false); player.broadcastUserInfo(); diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java index 54922a8fd6..1002f1336d 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10360_CertificationOfFate/Q10360_CertificationOfFate.java @@ -121,8 +121,11 @@ public final class Q10360_CertificationOfFate extends Quest case "30288-04.htm": case "30289-04.htm": { - st.startQuest(); - htmltext = event; + if (!player.isSubClassActive()) + { + st.startQuest(); + htmltext = event; + } break; } case "teleport": @@ -201,6 +204,11 @@ public final class Q10360_CertificationOfFate extends Quest } else if (event.startsWith("classChange;")) { + if (player.isSubClassActive()) + { + return null; + } + final ClassId newClassId = ClassId.getClassId(Integer.parseInt(event.replace("classChange;", ""))); final ClassId currentClassId = player.getClassId(); diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java index 255e4cdc27..f5717e2b8d 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java @@ -206,7 +206,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.CLOUD_BREAKER; if (qs.isCond(9) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -223,7 +226,10 @@ public final class Q10751_WindsOfFateEncounters extends Quest final ClassId newClass = ClassId.MARAUDER; if (qs.isCond(8) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java index 2cf1d78daa..23a2452813 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10752_WindsOfFateAPromise/Q10752_WindsOfFateAPromise.java @@ -212,7 +212,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.STRATOMANCER; if (qs.isCond(10) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -231,7 +234,10 @@ public final class Q10752_WindsOfFateAPromise extends Quest final ClassId newClass = ClassId.RIPPER; if (qs.isCond(11) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java index 2020a1e4c5..2a64b35cae 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10753_WindsOfFateChoices/Q10753_WindsOfFateChoices.java @@ -319,7 +319,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.EVISCERATOR; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); @@ -338,7 +341,10 @@ public final class Q10753_WindsOfFateChoices extends Quest final ClassId newClass = ClassId.SAYHA_SEER; if (qs.isCond(18) && newClass.childOf(player.getClassId())) { - player.setBaseClass(newClass); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClass); + } player.setClassId(newClass.getId()); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/ThirdClassTransferQuest.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/ThirdClassTransferQuest.java index 89d56a5727..b68be960b5 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/ThirdClassTransferQuest.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/ThirdClassTransferQuest.java @@ -235,7 +235,10 @@ public abstract class ThirdClassTransferQuest extends Quest addSkillCastDesire(npc, player, SHOW_SKILL.getSkill(), 23); player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_YOUR_THIRD_CLASS_TRANSFER_QUEST); player.broadcastSocialAction(3); - player.setBaseClass(newClassId); + if (!player.isSubClassActive()) + { + player.setBaseClass(newClassId); + } player.setClassId(newClassId.getId()); player.store(false); player.broadcastUserInfo();