- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
PoRnosJH
### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/handler/skillhandlers/Disablers.java =================================================================== --- java/net/sf/l2j/gameserver/handler/skillhandlers/Disablers.java (revision 5263) +++ java/net/sf/l2j/gameserver/handler/skillhandlers/Disablers.java (working copy) @@ -22,9 +22,13 @@ import java.util.logging.Level; import java.util.logging.Logger; +import javolution.util.FastList; + +import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.ai.CtrlEvent; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.ai.L2AttackableAI; +import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.handler.ISkillHandler; import net.sf.l2j.gameserver.handler.SkillHandler; import net.sf.l2j.gameserver.model.L2Attackable; @@ -66,6 +70,28 @@ private float _negatePower=0.f; private int _negateId=0; + public class Canc implements Runnable{ + L2PcInstance j; + FastList<L2Effect> l; + + public Canc(L2PcInstance p,FastList<L2Effect> f){ + j = p; + l = f; + } + + public void run(){ + if(l.isEmpty()) + return; + for(L2Effect b : l) + { + L2Skill k = SkillTable.getInstance().getInfo(b.getSkill().getId(), b.getLevel()); + if(k != null) + k.getEffects(j, j); + } + l.clear(); + } + } + @Override public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) { @@ -454,31 +480,30 @@ if(Rnd.get(100) < landrate) { - L2Effect[] effects = target.getAllEffects(); - int maxfive = 5; - for (L2Effect e : effects) - { - if (e.getSkill().getId() != 4082 && e.getSkill().getId() != 4215 && - e.getSkill().getId() != 4515 && e.getSkill().getId() != 110 && e.getSkill().getId() != 111 && - e.getSkill().getId() != 1323 && e.getSkill().getId() != 1325) // Cannot cancel skills 4082, 4215, 4515, 110, 111, 1323, 1325 - { - if(e.getSkill().getSkillType() != SkillType.BUFF) //sleep, slow, surrenders etc - e.exit(); - else - { - int rate = 100; - int level = e.getLevel(); - if (level > 0) rate = Integer.valueOf(150/(1 + level)); - if (rate > 95) rate = 95; - else if (rate < 5) rate = 5; - if(Rnd.get(100) < rate) { - e.exit(); - maxfive--; - if(maxfive == 0) break; - } - } + L2PcInstance p = null; + if(target instanceof L2PcInstance) + p = (L2PcInstance) target; + + if(p != null){ + L2Effect[] l = p.getAllEffects(); + int r = Rnd.get(6); + if(l.length < r){} + int i = 0; + for(L2Effect h : l){ + int id = h.getSkill().getId(); + if(id == 4082 || id == 4515 || id == 110 || id == 111 || id == 1323 || id == 1325) + continue; + if(i == r) + break; + + i++; + p.addRemovedBuff(h); + h.exit(); } + ThreadPoolManager.getInstance().scheduleGeneral(new Canc(p,p.getRemovedBuffs()), 6000); } + // Cannot cancel skills 4082, 4215, 4515, 110, 111, 1323, 1325 + else { if (activeChar instanceof L2PcInstance) Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 5263) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -408,6 +408,8 @@ /** True if the L2PcInstance is using the relax skill */ private boolean _relax; + + private FastList<L2Effect> removedBuffs = new FastList<L2Effect>(); /** Location before entering Observer Mode */ private int _obsX; @@ -8215,6 +8217,19 @@ return true; } + + public FastList<L2Effect> getRemovedBuffs(){ + return removedBuffs; + } + + public void addRemovedBuff(L2Effect j){ + removedBuffs.add(j); + } + public boolean isNoble() { return _noble;Code : Cancel Lasts For 15sec...after all lost buffs return
Author/Credits : iRat
Shared from him in MXC
0 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now