Index: /trunk/L2_GameServer/java/config/Character.properties
===================================================================
--- /trunk/L2_GameServer/java/config/Character.properties (revision 3546)
+++ /trunk/L2_GameServer/java/config/Character.properties (revision 3547)
@@ -175,4 +175,8 @@
AltSubClassWithoutQuests = False
+# Allow player to add/change subclass at all village master
+# Default: False
+AltSubclassEverywhere = False
+
# ---------------------------------------------------------------------------
# Vitality configuration
Index: /trunk/L2_GameServer/java/net/sf/l2j/Config.java
===================================================================
--- /trunk/L2_GameServer/java/net/sf/l2j/Config.java (revision 3546)
+++ /trunk/L2_GameServer/java/net/sf/l2j/Config.java (revision 3547)
@@ -101,4 +101,5 @@
public static boolean ALT_GAME_SKILL_LEARN;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
+ public static boolean ALT_GAME_SUBCLASS_EVERYWHERE;
public static int MAX_RUN_SPEED;
public static int MAX_PCRIT_RATE;
@@ -1201,4 +1202,5 @@
ALT_GAME_SKILL_LEARN = Boolean.parseBoolean(Character.getProperty("AltGameSkillLearn", "false"));
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Boolean.parseBoolean(Character.getProperty("AltSubClassWithoutQuests", "False"));
+ ALT_GAME_SUBCLASS_EVERYWHERE = Boolean.parseBoolean(Character.getProperty("AltSubclassEverywhere", "False"));
ENABLE_VITALITY = Boolean.parseBoolean(Character.getProperty("EnableVitality", "True"));
RECOVER_VITALITY_ON_RECONNECT = Boolean.parseBoolean(Character.getProperty("RecoverVitalityOnReconnect", "True"));
@@ -2366,4 +2368,5 @@
else if (pName.equalsIgnoreCase("AltFreeTeleporting")) ALT_GAME_FREE_TELEPORT = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("AltSubClassWithoutQuests")) ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Boolean.parseBoolean(pValue);
+ else if (pName.equalsIgnoreCase("AltSubclassEverywhere")) ALT_GAME_SUBCLASS_EVERYWHERE = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("AltMembersCanWithdrawFromClanWH")) ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("DwarfRecipeLimit")) DWARF_RECIPE_LIMIT = Integer.parseInt(pValue);
Index: /trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java
===================================================================
--- /trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 3506)
+++ /trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 3547)
@@ -212,5 +212,5 @@
if (getVillageMasterRace() == Race.Kamael)
{
- if (player.getRace() == Race.Kamael)
+ if (player.getRace() == Race.Kamael || Config.ALT_GAME_SUBCLASS_EVERYWHERE)
html.setFile("data/html/villagemaster/SubClass.htm");
else
@@ -219,5 +219,5 @@
else
{
- if (player.getRace() != Race.Kamael)
+ if (player.getRace() != Race.Kamael || Config.ALT_GAME_SUBCLASS_EVERYWHERE)
html.setFile("data/html/villagemaster/SubClass.htm");
else
@@ -269,5 +269,5 @@
final StringBuilder content2 = StringUtil.startAppend(200);
- if (checkVillageMaster(player.getBaseClass()))
+ if (checkVillageMaster(player.getBaseClass()) || Config.ALT_GAME_SUBCLASS_EVERYWHERE)
{
StringUtil.append(content2,
@@ -280,5 +280,5 @@
{
SubClass subClass = subList.next();
- if (checkVillageMaster(subClass.getClassDefinition()))
+ if (checkVillageMaster(subClass.getClassDefinition()) || Config.ALT_GAME_SUBCLASS_EVERYWHERE)
{
StringUtil.append(content2,
@@ -455,5 +455,5 @@
if (paramOne == 0)
{
- if (!checkVillageMaster(player.getBaseClass()))
+ if (!checkVillageMaster(player.getBaseClass()) && !Config.ALT_GAME_SUBCLASS_EVERYWHERE)
return;
}
@@ -462,5 +462,5 @@
try
{
- if (!checkVillageMaster(player.getSubClasses().get(paramOne).getClassDefinition()))
+ if (!checkVillageMaster(player.getSubClasses().get(paramOne).getClassDefinition()) && !Config.ALT_GAME_SUBCLASS_EVERYWHERE)
return;
}
By janiii