Jump to content
  • 0

[Qestion]StuckSubs


Kate

Question

7 answers to this question

Recommended Posts

  • 0

Thats the base code:

 

Index: /Trunk/L2_GameServer/java/config/intrepid.properties
===================================================================
--- /Trunk/L2_GameServer/java/config/intrepid.properties (revision 30)
+++ /Trunk/L2_GameServer/java/config/intrepid.properties (revision 49)
@@ -30,2 +30,5 @@
#---------------------------------------------
AllowedNPCTypes = L2Boss,L2Chest,L2FestivalMonster,L2Minion,L2Monster,L2Pet,L2RaidBoss,L2SiegeGuard,L2SiegeNpc,L2ControlTower,L2GrandBoss,L2Artefact,L2FortManager,L2FortSiegeNpc,L2FortSiegeGuard,L2FortCommander,L2FortBallista
+
+# Sub stuck
+SubStucking = False
Index: /Trunk/L2_GameServer/java/net/sf/l2j/Config.java
===================================================================
--- /Trunk/L2_GameServer/java/net/sf/l2j/Config.java (revision 30)
+++ /Trunk/L2_GameServer/java/net/sf/l2j/Config.java (revision 49)
@@ -652,4 +652,6 @@
     /** List of NPC types that won't allow casting */
     public static FastList<String> LIST_ALLOWED_NPC_TYPES = new FastList<String>();
+    /** stuck sub **/
+    public static boolean ACUMULATIVE_SUBCLASS_SKILLS;
     
     /** ************************************************** **/
@@ -1552,4 +1554,5 @@
	                	LIST_ALLOWED_NPC_TYPES.add(npc_type);
	                }
+	                ACUMULATIVE_SUBCLASS_SKILLS = Boolean.parseBoolean(intrepidSettings.getProperty("SubStucking", "False"));
	            }
	            catch (Exception e)
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 8)
+++ /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 49)
@@ -816,6 +816,6 @@
         

-        final Race npcRace = getVillageMasterRace();
-        final ClassType npcTeachType = getVillageMasterTeachType();
+        getVillageMasterRace();
+        getVillageMasterTeachType();

         PlayerClass currClass = PlayerClass.values()[charClassId];
@@ -862,22 +862,4 @@
                         availSubs.remove(availSub);                        
                 }
-
-                if (npcRace == Race.Human || npcRace == Race.Elf)
-                {
-                    // If the master is human or light elf, ensure that fighter-type
-                    // masters only teach fighter classes, and priest-type masters
-                    // only teach priest classes etc.
-                    if (!availSub.isOfType(npcTeachType)) availSubs.remove(availSub);
-
-                    // Remove any non-human or light elf classes.
-                    else if (!availSub.isOfRace(Race.Human)
-                        && !availSub.isOfRace(Race.Elf)) availSubs.remove(availSub);
-                }
-                else
-                {
-                    // If the master is not human and not light elf,
-                    // then remove any classes not of the same race as the master.
-                    if (!availSub.isOfRace(npcRace)) availSubs.remove(availSub);
-                }
             }
         }
Index: /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 48)
+++ /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 49)
@@ -231,4 +231,5 @@
     // Character Skill SQL String Definitions:
	private static final String RESTORE_SKILLS_FOR_CHAR = "SELECT skill_id,skill_level FROM character_skills WHERE charId=? AND class_index=?";
+	private static final String ACUMULATE_SKILLS_FOR_CHAR_SUB = "SELECT skill_id,skill_level FROM character_skills WHERE charId=? ORDER BY skill_id , skill_level ASC";
	private static final String ADD_NEW_SKILL = "INSERT INTO character_skills (charId,skill_id,skill_level,skill_name,class_index) VALUES (?,?,?,?,?)";
	private static final String UPDATE_CHARACTER_SKILL_LEVEL = "UPDATE character_skills SET skill_level=? WHERE skill_id=? AND charId=? AND class_index=?";
@@ -7557,10 +7558,14 @@
		try
		{
+			// L2 Emu Addon
+			boolean isAcumulative = Config.ACUMULATIVE_SUBCLASS_SKILLS;
+			
			// Retrieve all skills of this L2PcInstance from the database
			con = L2DatabaseFactory.getInstance().getConnection();
-			PreparedStatement statement = con.prepareStatement(RESTORE_SKILLS_FOR_CHAR);
-			
+			PreparedStatement statement = con.prepareStatement(isAcumulative ? ACUMULATE_SKILLS_FOR_CHAR_SUB : RESTORE_SKILLS_FOR_CHAR);
			statement.setInt(1, getObjectId());
-			statement.setInt(2, getClassIndex());
+			if (!isAcumulative)
+				// L2 Emu Addon
+				statement.setInt(2, getClassIndex());
			ResultSet rset = statement.executeQuery();

Index: /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/base/PlayerClass.java
===================================================================
--- /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/base/PlayerClass.java (revision 6)
+++ /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/base/PlayerClass.java (revision 49)
@@ -209,5 +209,4 @@

	private static final Set<PlayerClass> mainSubclassSet;
-	private static final Set<PlayerClass> neverSubclassed = EnumSet.of(Overlord, Warsmith);

	private static final Set<PlayerClass> subclasseSet1 = EnumSet.of(DarkAvenger, Paladin, TempleKnight, ShillienKnight);
@@ -222,5 +221,4 @@
	{
		Set<PlayerClass> subclasses = getSet(null, Third);
-		subclasses.removeAll(neverSubclassed);

		mainSubclassSet = subclasses;
@@ -269,9 +267,38 @@
				switch (_race)
				{
+					case Human:
+						subclasses.removeAll(getSet(DarkElf, Third));
+						subclasses.removeAll(getSet(Elf, Third));
+						subclasses.removeAll(getSet(Orc, Third));
+						subclasses.removeAll(getSet(Dwarf, Third));
+						subclasses.removeAll(getSet(Kamael, Third));
+						break;
+					case DarkElf:
+						subclasses.removeAll(getSet(Human, Third));
+						subclasses.removeAll(getSet(Elf, Third));
+						subclasses.removeAll(getSet(Orc, Third));
+						subclasses.removeAll(getSet(Dwarf, Third));
+						subclasses.removeAll(getSet(Kamael, Third));
+						break;
					case Elf:
+						subclasses.removeAll(getSet(Human, Third));
						subclasses.removeAll(getSet(DarkElf, Third));
-						break;
-					case DarkElf:
+						subclasses.removeAll(getSet(Orc, Third));
+						subclasses.removeAll(getSet(Dwarf, Third));
+						subclasses.removeAll(getSet(Kamael, Third));
+						break;
+					case Orc:
+						subclasses.removeAll(getSet(Human, Third));
+						subclasses.removeAll(getSet(DarkElf, Third));
						subclasses.removeAll(getSet(Elf, Third));
+						subclasses.removeAll(getSet(Dwarf, Third));
+						subclasses.removeAll(getSet(Kamael, Third));
+						break;
+					case Dwarf:
+						subclasses.removeAll(getSet(Human, Third));
+						subclasses.removeAll(getSet(DarkElf, Third));
+						subclasses.removeAll(getSet(Orc, Third));
+						subclasses.removeAll(getSet(Elf, Third));
+						subclasses.removeAll(getSet(Kamael, Third));
						break;
				}
@@ -294,6 +321,4 @@
				else
					subclasses.removeAll(EnumSet.of(femaleSoulbreaker));
-				if (player.getTotalSubClasses() < 2)
-					subclasses.removeAll(EnumSet.of(inspector));
			}
		}

 

And add that too to avoid the mastery duplicates:

 

Index: /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 49)
+++ /Trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 50)
@@ -7575,12 +7575,20 @@
				int id = rset.getInt("skill_id");
				int level = rset.getInt("skill_level");
+				int chclass = rset.getInt("class_index");

				if (id > 9000 && id < 9007)
					continue; // fake skills for base stats
-
+				if(chclass != getClassIndex())
+
+				{
+					// Remove armor mastery from other classes
+					if(id == 118 || id == 163 || id == 236 || id == 249 || id == 252 || id == 253 || id == 258 || id == 259) continue;
+				}
+					
				// Create a L2Skill object for each record
				L2Skill skill = SkillTable.getInstance().getInfo(id, level);
-
-				// Add the L2Skill object to the L2Character _skills and its Func objects to the calculator set of the L2Character
+					
+				// Add the L2Skill object to the L2Character _skills and its
+				// Func objects to the calculator set of the L2Character
				super.addSkill(skill);
				if (Config.CHECK_SKILLS && Config.CHECK_SKILLS_ACCESS_LEVEL_LIST.contains(getAccessLevel().getLevel()))
@@ -7594,5 +7602,5 @@
						removeSkill(skill);
					}
-			}
+				}

			rset.close();

 

Link to comment
Share on other sites

  • 0

intrepid.properties doesnt exist at l2j final pack, can u make it work please? tnx ^^

 

Pff, think a bit, it was just an example..

 

You can put it for example in l2jmods.properties

 

Check out this Thread - there is explanation about Config.

 

And next time do not bump old threads, locked.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Posts

    • Los Angeles love spells 📱 (973_384_3997  The most authentic love spells are the most reliable source you can rely on. The most authentic of all these spells is cast in a variety of ways. Love can be mended or broken and so anyone can choose how you want to use the spells. You might want to bring back your ex-girlfriend or boyfriend or divorce her. There are A lot of differences in the world of love. First of all, we need to know that there is a special spiritual being around us. A real man that follows us up and finds what lucks in our life and hence finds a better solution to help us. Most of us are naïve and ignorant about this and hence less of us believe in all this. Contact me right now so that we begin the rituals right away. Authentic love spells (973) 384-3997! Get Back your Ex / lost lover Permanently! The most authentic love spells are spread the universal over e to those who apply to get them. They have helped mend broken hearts that have no hope all over. My most efficient and authentic love spells contain the most meditated magical powers. The powers take a bit of time to work. My physical powers are so strong that I have come through meditation and concentration to work for you. Most Powerful love spells (973) 384-3997! Get Back your Ex / lost lover Permanently. The authentic love spells have a package for married people and so they will also grant you the love you deserve and happiness in marriage. Many marriages are breaking and facing hardships, but you have failed to get ways to make it out. Contact me so that your marriage life is helped not to fall and restore the happiness that you once shared. My love spells are easily made through marriage portions and oils that you can easily perform on your own. Call: (973)384-3997
    • 📞 Verified Lost love spell caster 📱 (973) 384-3997  The most authentic love spells are the most reliable source you can rely on. The most authentic of all these spells is cast in a variety of ways. Love can be mended or broken and so anyone can choose how you want to use the spells. You might want to bring back your ex-girlfriend or boyfriend or divorce her. There are A lot of differences in the world of love. First of all, we need to know that there is a special spiritual being around us. A real man that follows us up and finds what lucks in our life and hence finds a better solution to help us. Most of us are naïve and ignorant about this and hence less of us believe in all this. Contact me right now so that we begin the rituals right away. Authentic love spells (973) 384-3997! Get Back your Ex / lost lover Permanently! The most authentic love spells are spread the universal over e to those who apply to get them. They have helped mend broken hearts that have no hope all over. My most efficient and authentic love spells contain the most meditated magical powers. The powers take a bit of time to work. My physical powers are so strong that I have come through meditation and concentration to work for you. Most Powerful love spells (973) 384-3997! Get Back your Ex / lost lover Permanently. The authentic love spells have a package for married people and so they will also grant you the love you deserve and happiness in marriage. Many marriages are breaking and facing hardships, but you have failed to get ways to make it out. Contact me so that your marriage life is helped not to fall and restore the happiness that you once shared. My love spells are easily made through marriage portions and oils that you can easily perform on your own. Call: (973)384-3997
    • 📱 Best Love Spells  (973) 384-3997  in New York City NY The most authentic love spells are the most reliable source you can rely on. The most authentic of all these spells is cast in a variety of ways. Love can be mended or broken and so anyone can choose how you want to use the spells. You might want to bring back your ex-girlfriend or boyfriend or divorce her. There are A lot of differences in the world of love. First of all, we need to know that there is a special spiritual being around us. A real man that follows us up and finds what lucks in our life and hence finds a better solution to help us. Most of us are naïve and ignorant about this and hence less of us believe in all this. Contact me right now so that we begin the rituals right away. Authentic love spells (973) 384-3997! Get Back your Ex / lost lover Permanently! The most authentic love spells are spread the universal over e to those who apply to get them. They have helped mend broken hearts that have no hope all over. My most efficient and authentic love spells contain the most meditated magical powers. The powers take a bit of time to work. My physical powers are so strong that I have come through meditation and concentration to work for you. Most Powerful love spells (973) 384-3997! Get Back your Ex / lost lover Permanently. The authentic love spells have a package for married people and so they will also grant you the love you deserve and happiness in marriage. Many marriages are breaking and facing hardships, but you have failed to get ways to make it out. Contact me so that your marriage life is helped not to fall and restore the happiness that you once shared. My love spells are easily made through marriage portions and oils that you can easily perform on your own. Call: (973)384-3997
    • 📞+ 1 (973) 384-3997  Voodoo Love spells Visalia,California The most authentic love spells are the most reliable source you can rely on. The most authentic of all these spells is cast in a variety of ways. Love can be mended or broken and so anyone can choose how you want to use the spells. You might want to bring back your ex-girlfriend or boyfriend or divorce her. There are A lot of differences in the world of love. First of all, we need to know that there is a special spiritual being around us. A real man that follows us up and finds what lucks in our life and hence finds a better solution to help us. Most of us are naïve and ignorant about this and hence less of us believe in all this. Contact me right now so that we begin the rituals right away. Authentic love spells (973) 384-3997! Get Back your Ex / lost lover Permanently! The most authentic love spells are spread the universal over e to those who apply to get them. They have helped mend broken hearts that have no hope all over. My most efficient and authentic love spells contain the most meditated magical powers. The powers take a bit of time to work. My physical powers are so strong that I have come through meditation and concentration to work for you. Most Powerful love spells (973) 384-3997! Get Back your Ex / lost lover Permanently. The authentic love spells have a package for married people and so they will also grant you the love you deserve and happiness in marriage. Many marriages are breaking and facing hardships, but you have failed to get ways to make it out. Contact me so that your marriage life is helped not to fall and restore the happiness that you once shared. My love spells are easily made through marriage portions and oils that you can easily perform on your own. Call: (973)384-3997
    • Montgomery Alabama ☎️ (973) 384-3997  AL  Genuine Voodoo Love Spells The most authentic love spells are the most reliable source you can rely on. The most authentic of all these spells is cast in a variety of ways. Love can be mended or broken and so anyone can choose how you want to use the spells. You might want to bring back your ex-girlfriend or boyfriend or divorce her. There are A lot of differences in the world of love. First of all, we need to know that there is a special spiritual being around us. A real man that follows us up and finds what lucks in our life and hence finds a better solution to help us. Most of us are naïve and ignorant about this and hence less of us believe in all this. Contact me right now so that we begin the rituals right away. Authentic love spells (973) 384-3997! Get Back your Ex / lost lover Permanently! The most authentic love spells are spread the universal over e to those who apply to get them. They have helped mend broken hearts that have no hope all over. My most efficient and authentic love spells contain the most meditated magical powers. The powers take a bit of time to work. My physical powers are so strong that I have come through meditation and concentration to work for you. Most Powerful love spells (973) 384-3997! Get Back your Ex / lost lover Permanently. The authentic love spells have a package for married people and so they will also grant you the love you deserve and happiness in marriage. Many marriages are breaking and facing hardships, but you have failed to get ways to make it out. Contact me so that your marriage life is helped not to fall and restore the happiness that you once shared. My love spells are easily made through marriage portions and oils that you can easily perform on your own. Call: (973)384-3997
  • Topics

×
×
  • Create New...