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 Java
+ */
+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>
С тебя 5 рублей)