2
0
Эх сурвалжийг харах

Gnacik: found problem with that 4 subclass for kamales. its because sex check. for example femaleSoulbreaker is skipped as a sub for kamaels females - arbalester. but if you are female soulbreaker on main - no sub is skipped and you can take 4 subclasses.

JIV 15 жил өмнө
parent
commit
fd6faaecbe

+ 11 - 5
L2_GameServer/java/com/l2jserver/gameserver/model/base/PlayerClass.java

@@ -42,6 +42,7 @@ import java.util.EnumMap;
 import java.util.EnumSet;
 import java.util.Set;
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 
@@ -289,11 +290,16 @@ public enum PlayerClass
 			{
 				subclasses = getSet(Kamael, Third);
 				subclasses.remove(this);
-				//Check sex, male subclasses female and vice versa
-				if (player.getAppearance().getSex())
-					subclasses.removeAll(EnumSet.of(femaleSoulbreaker));
-				else
-					subclasses.removeAll(EnumSet.of(maleSoulbreaker));
+				// Check sex, male subclasses female and vice versa
+				// If server owner set MaxSubclass > 3 some kamael's cannot take 4 sub
+				// So, in that situation we must skip sex check
+				if (Config.MAX_SUBCLASS <= 3)
+				{
+					if (player.getAppearance().getSex())
+						subclasses.removeAll(EnumSet.of(femaleSoulbreaker));
+					else
+						subclasses.removeAll(EnumSet.of(maleSoulbreaker));
+				}
 				if (player.getTotalSubClasses() < 2)
 					subclasses.removeAll(EnumSet.of(inspector));
 			}