Jump to content

[Share]Extra buffs slot


AlLupu

Recommended Posts

Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java	(revision 4425)
+++ java/com/l2jserver/Config.java	(working copy)
@@ -41,6 +41,8 @@

import javax.xml.parsers.DocumentBuilderFactory;

+import javolution.util.FastList;
+
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -715,6 +717,8 @@
	public static int L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP;
	public static int L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP;
	public static TIntIntHashMap L2JMOD_DUALBOX_CHECK_WHITELIST;
+	public static boolean L2JMOD_STRICT_BUFF_COUNT;
+	public static List<Integer> L2JMOD_STRICT_BUFF_EXCEPTIONS = new FastList<Integer>();;

	//--------------------------------------------------
	// NPC Settings
@@ -2422,6 +2426,12 @@
					L2WALKER_PROTECTION = Boolean.parseBoolean(L2JModSettings.getProperty("L2WalkerProtection", "False"));
					L2JMOD_DEBUG_VOICE_COMMAND = Boolean.parseBoolean(L2JModSettings.getProperty("DebugVoiceCommand", "False"));

+					L2JMOD_STRICT_BUFF_COUNT = Boolean.parseBoolean(L2JModSettings.getProperty("EnableStrictbuffCount", "False"));
+					for (String id : L2JModSettings.getProperty("StrictBuffExc", "0").split(","))
+					{
+							L2JMOD_STRICT_BUFF_EXCEPTIONS.add(Integer.parseInt(id));	
+					}	
+					
					L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP = Integer.parseInt(L2JModSettings.getProperty("DualboxCheckMaxPlayersPerIP", "0"));
					L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP = Integer.parseInt(L2JModSettings.getProperty("DualboxCheckMaxOlympiadParticipantsPerIP", "0"));
					String[] propertySplit = L2JModSettings.getProperty("DualboxCheckWhitelist", "127.0.0.1,0").split(";");
@@ -2448,7 +2458,7 @@
								_log.warning(StringUtil.concat("DualboxCheck[Config.load()]: invalid number -> DualboxCheckWhitelist \"", entrySplit[1], "\""));
							}
						}
-					}
+					}				
				}
				catch (Exception e)
				{
Index: java/com/l2jserver/gameserver/model/CharEffectList.java
===================================================================
--- java/com/l2jserver/gameserver/model/CharEffectList.java	(revision 4425)
+++ java/com/l2jserver/gameserver/model/CharEffectList.java	(working copy)
@@ -831,6 +831,8 @@
				else
				{
					effectsToRemove = getBuffCount() - _owner.getMaxBuffCount();
+				 if (!Config.L2JMOD_STRICT_BUFF_COUNT)
+				 {
					if (effectsToRemove >= 0)
					{
						switch (newSkill.getSkillType())
@@ -861,6 +863,40 @@
								}
						}
					}
+				 }
+				 else
+				 {
+						if (effectsToRemove >= 0 && (!Config.L2JMOD_STRICT_BUFF_EXCEPTIONS.contains(newSkill.getId())))
+						{
+							switch (newSkill.getSkillType())
+							{
+								case BUFF:
+								case REFLECT:
+								case HEAL_PERCENT:
+								case MANAHEAL_PERCENT:
+									for (L2Effect e : _buffs)
+									{
+										if (e == null || e.getSkill().isDance())
+											continue;
+										
+										switch (e.getSkill().getSkillType())
+										{
+											case BUFF:
+											case REFLECT:
+											case HEAL_PERCENT:
+											case MANAHEAL_PERCENT:
+												if (!Config.L2JMOD_STRICT_BUFF_EXCEPTIONS.contains(e.getSkill().getId())) e.exit();
+												effectsToRemove--;
+												break; // break switch()
+											default:
+												continue; // continue for()
+										}
+										if (effectsToRemove < 0)
+											break; // break for()
+									}
+							}
+						}					 
+				 }
				}
			}

Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/L2Character.java	(revision 4425)
+++ java/com/l2jserver/gameserver/model/actor/L2Character.java	(working copy)
@@ -6870,7 +6870,10 @@
	 */
	public int getMaxBuffCount()
	{
-		return Config.BUFFS_MAX_AMOUNT + Math.max(0, getSkillLevel(L2Skill.SKILL_DIVINE_INSPIRATION));
+		if (!Config.L2JMOD_STRICT_BUFF_COUNT)
+			return Config.BUFFS_MAX_AMOUNT + Math.max(0, getSkillLevel(L2Skill.SKILL_DIVINE_INSPIRATION));
+		else
+			return Config.BUFFS_MAX_AMOUNT;
	}

	/**
Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties	(revision 4425)
+++ java/config/l2jmods.properties	(working copy)
@@ -397,7 +397,16 @@
# Default: False
DebugVoiceCommand = False

+# ---------------------------------------------------------------------------
+# Strict buff control by szmajso@wp.pl
+# ---------------------------------------------------------------------------
+# NOTE!: Divine inspiration is disabled when this mod is enabled!
+# Enable system
+EnableStrictbuffCount = False

+#List of buff that are not count for maxbuff value (1;2;...)
+StrictBuffExc = 1207,1059
+
# ---------------------------------------------------------------------------
# Dualbox Check
# ---------------------------------------------------------------------------
@@ -418,3 +427,4 @@
# will be 1+2=3. Use 0 or negative value for unlimited number of connections.
# Default: 127.0.0.1,0 (no limits from localhost)
DualboxCheckWhitelist = 127.0.0.1,0
+

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock