http://maxcheaters.com/forum/index.php?topic=238847.0
Εχω βαρεθει να βλεπω σε servers να ανεβαζουνε το hit time του cancel σε 2000000 δευτερολεπτα και το delay να το βαζουν 100 λεπτα. Και χαλαει τον spell singer και ειναι μουφα.
Tested
Λοιπον με αυτο εδω πιστευω ο spell singer παιρνει την αξια του αλλα και ειναι και balance.
Οταν ο spell singer κανει το cancel , ο αντιπαλος χανει απο 1 μεχρι 6 buffs(τυχαιο) , μετα απο 15 δευτερολεπτα τα ξαναπαιρνει αυτοματα. Πιστευω ειναι το τελειο balance για το Cancel skill 8)
### 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;
http://maxcheaters.com/forum/index.php?topic=250759.0
Well, one friend asked to me to help him coding a simple "pvp zone" and then asked to me to add an item checker... etc
So I coded a "MultiFunction", "AIO"... whatever... zone. Easy to modify, with configs... and I wanted to share it with you.
Simply if you don't like it or you don't like me, don't spam here. We know that some of this features could be already shared over the net... blabla...
But here are all together, are configurable and I think that it's 90% without bugs.
Note: Default zone: Crystal Caverns
Quickly enumeration of which configs it has:
-Enable/Disable pvp flag on enter
-Enable/Disable revive delay & set the time
-Specify (unlimited) random respawns if revive enabled
-Specify random respawn radius
-Enable/Disable noblesse blessing on enter
-Enable/Disable remove buffs on enter
-Enable/Disable remove pets on enter
-Specify special reward when hunting inside
-Specify items that will be unequiped & blocked to use inside the zone
-Specify items by grades that will be unequiped & blocked to use inside the zone
-Specify an enchant level. Items with that level or more, will be unequiped & blocked to use inside the zone
-Specify classes id's that won't be able to enter to this zone
V.1.3 - 14/02/2013
Coded for l2jserver Freya.
L2jServer Freya patchCoded for l2jfrozen Interlude.
L2jFrozen Interlude patch. Coded for l2jserver H5 Beta, rev core:5639 datapack:9185.
L2jServer H5 Beta patchCredits: Wyatt