Welcome to MaxCheaters.com

Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads

[Share]Anti buff shield


Recommended Posts

Hello , it's this code  http://maxcheaters.com/forum/index.php?topic=180578.0

modified and adapted for L2JFrozen.

 

Core

### Eclipse Workspace Patch 1.0
#P L2JFrozen_Gameserver
Index: head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java	(revision 601)
+++ head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java	(working copy)
@@ -128,6 +128,16 @@
			// Walls and Door should not be buffed
			if(target instanceof L2DoorInstance && (skill.getSkillType() == L2Skill.SkillType.BUFF || skill.getSkillType() == L2Skill.SkillType.HOT))
				continue;
+			
+			// Anti-Buff Protection prevents you from getting buffs by other players
+			if (activeChar instanceof L2PlayableInstance && target != activeChar && target.isBuffProtected() && !skill.isHeroSkill()
+			    && (skill.getSkillType() == L2Skill.SkillType.BUFF
+			|| skill.getSkillType() == L2Skill.SkillType.HEAL_PERCENT
+			|| skill.getSkillType() == L2Skill.SkillType.FORCE_BUFF
+			|| skill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT
+			|| skill.getSkillType() == L2Skill.SkillType.COMBATPOINTHEAL
+			|| skill.getSkillType() == L2Skill.SkillType.REFLECT))
+			continue;

			// Player holding a cursed weapon can't be buffed and can't buff
			if(skill.getSkillType() == L2Skill.SkillType.BUFF)
Index: head-src/com/l2jfrozen/gameserver/model/L2Character.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/L2Character.java	(revision 601)
+++ head-src/com/l2jfrozen/gameserver/model/L2Character.java	(working copy)
@@ -158,6 +158,7 @@
	private L2Skill _lastPotionCast;

	private boolean _isAfraid = false; // Flee in a random direction
+	private boolean _isBuffProtected = false; //Protect From Debuffs
	private boolean _isConfused = false; // Attack anyone randomly
	private boolean _isFakeDeath = false; // Fake death
	private boolean _isFlying = false; // Is flying Wyvern?
@@ -2177,6 +2178,16 @@
		_isAfraid = value;
	}

+
+	public final void setIsBuffProtected(boolean value)
+	{
+	    _isBuffProtected = value;
+	}
+	
+	public boolean isBuffProtected()
+	{
+	    return _isBuffProtected;	
+	}
	/** Return True if the L2Character is dead or use fake death. */
	public final boolean isAlikeDead()
	{
Index: head-src/com/l2jfrozen/gameserver/skills/effects/EffectDeflectBuff.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/skills/effects/EffectDeflectBuff.java	(revision 0)
+++ head-src/com/l2jfrozen/gameserver/skills/effects/EffectDeflectBuff.java	(revision 0)
@@ -0,0 +1,82 @@
+package com.l2jfrozen.gameserver.skills.effects;
+
+import com.l2jfrozen.gameserver.model.L2Effect;
+import com.l2jfrozen.gameserver.model.L2Effect.EffectType;
+import com.l2jfrozen.gameserver.model.L2Skill.SkillType;
+import com.l2jfrozen.gameserver.network.SystemMessageId;
+import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
+import com.l2jfrozen.gameserver.skills.Env;
+
+/**
+ * @author Lineal
+ */
+public final class EffectDeflectBuff extends L2Effect
+{
+	/**
+	 * @param env
+	 * @param template
+	 */
+	public EffectDeflectBuff(Env env, EffectTemplate template)
+	{
+		super(env, template);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.l2jfrozen.gameserver.model.L2Effect#getEffectType()
+	 */
+	@Override
+	public EffectType getEffectType()
+	{
+		return EffectType.PREVENT_BUFF;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.l2jfrozen.gameserver.model.L2Effect#onActionTime()
+	 */
+	@Override
+	public boolean onActionTime()
+	{
+		// Only cont skills shouldn't end
+		if(getSkill().getSkillType() != SkillType.CONT)
+			return false;
+
+		double manaDam = calc();
+
+		if(manaDam > getEffected().getCurrentMp())
+		{
+			SystemMessage sm = new SystemMessage(SystemMessageId.SKILL_REMOVED_DUE_LACK_MP);
+			getEffected().sendPacket(sm);
+			return false;
+		}
+
+		getEffected().reduceCurrentMp(manaDam);
+		return true;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.l2jfrozen.gameserver.model.L2Effect#onStart()
+	 */
+	@Override
+	public void onStart()
+	{
+		getEffected().setIsBuffProtected(true);
+		return;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.l2jfrozen.gameserver.model.L2Effect#onExit()
+	 */
+	@Override
+	public void onExit()
+	{
+		getEffected().setIsBuffProtected(false);
+	}
+}
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/model/L2Effect.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/L2Effect.java	(revision 601)
+++ head-src/com/l2jfrozen/gameserver/model/L2Effect.java	(working copy)
@@ -105,7 +105,8 @@
		FUSION,
		CANCEL,
		BLOCK_BUFF,
-		BLOCK_DEBUFF
+		BLOCK_DEBUFF,
+		PREVENT_BUFF
	}

	private static final Func[] _emptyFunctionSet = new Func[0];

 

Datapack

<skill id="add the skill id here" levels="1" name="AntiBuff-Shield">
  <set name="target" val="TARGET_SELF"/>
  <set name="skillType" val="CONT"/>
  <set name="operateType" val="OP_TOGGLE"/>
  <set name="castRange" val="-1"/>
  <set name="effectRange" val="-1"/>
  <for>
    <effect count="0x7fffffff" name="DeflectBuff" time="3" val="0"/>
  </for>
</skill>

 

That's all...And for those who don't know what is it  = you can select by yourself a skill which forbid to take buffs from others.

PS:You can just apply the core side , it will work for sure

 

Credits:Officialy parizakis for his code and me for adaption(?).

Share this post


Link to post
Share on other sites

Can you make it for l2jacis too?

 

Look at original code.. Original is for l2j and acis is based on.. :)

So, I think you dont need any modifications.

Share this post


Link to post
Share on other sites
  • 2 months later...
Guest
This topic is now closed to further replies.