- Joined
- Oct 30, 2008
- Messages
- 6
- Reaction score
- 0
hi can anyone help me with the code of the skill Seal of Limit???
Index: C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Character.java
===================================================================
--- C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Character.java
+++ C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Character.java
@@ -174 +174 @@
private boolean _isImmobileUntilAttacked = false; // Is in immobile until attacked.
private boolean _isSleeping = false; // Cannot move/attack until sleep timed out or monster is attacked
private boolean _isStunned = false; // Cannot move/attack until stun timed out
+ private boolean _issealofLimit = false; // Debuff + hp/mp/cp 0 regen
private boolean _isBetrayed = false; // Betrayed by own summon
protected boolean _showSummonAnimation = false;
protected boolean _isTeleporting = false;
@@ -2496 +2496 @@
/** Return True if the L2Character can't use its skills (ex : stun, sleep...). */
public final boolean isAllSkillsDisabled() { return _allSkillsDisabled || isImmobileUntilAttacked() || isStunned() || isSleeping() || isParalyzed(); }
+ /** char is effected by seal of limit */
+ public final boolean isEffectingSealofLimit()
+ {
+ return issealofLimit();
+ }
+
/** Return True if the L2Character can't attack (stun, sleep, attackEndTime, fakeDeath, paralyse, attackMute). */
public boolean isAttackingDisabled() { return isStunned() || isImmobileUntilAttacked() || isSleeping() || _attackEndTime > GameTimeController.getGameTicks() || isFakeDeath() || isParalyzed() || isPhysicalAttackMuted(); }
@@ -2829 +2829 @@
public final boolean isStunned() { return _isStunned; }
public final void setIsStunned(boolean value) { _isStunned = value; }
+ public final boolean issealofLimit()
+ {
+ return _issealofLimit;
+ }
+ public final void setIsSealofLimit(boolean value)
+ {
+ _issealofLimit = value;
+ }
public final boolean isBetrayed() { return _isBetrayed; }
public final void setIsBetrayed(boolean value) { _isBetrayed = value; }
Index: C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\skills\Formulas.java
===================================================================
--- C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\skills\Formulas.java
+++ C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\skills\Formulas.java
@@ -1135 +1135 @@
int castleIndex = player.getClan().getHasCastle();
if (castleIndex > 0)
{
Castle castle = CastleManager.getInstance().getCastleById(castleIndex);
if (castle != null)
if (castle.getFunction(Castle.FUNC_RESTORE_HP) != null)
hpRegenMultiplier *= 1 + castle.getFunction(Castle.FUNC_RESTORE_HP).getLvl() / 100;
}
}
+ if (player.isEffectingSealofLimit())
+ {
+ init *= 0;
+ hpRegenBonus *= 0;
+ hpRegenMultiplier *= 0;
+ }
// Calculate Movement bonus
if (player.isSitting() && player.getLevel() < 41) // Sitting below lvl 40
{
init *= 1.5;
hpRegenBonus += (40 - player.getLevel()) * 0.7;
}
@@ -1235 +1235 @@
if (player.isInsideZone(L2Zone.FLAG_CLANHALL) && player.getClan() != null)
{
int clanHallIndex = player.getClan().getHasHideout();
if (clanHallIndex > 0)
{
ClanHall clansHall = ClanHallManager.getInstance().getClanHallById(clanHallIndex);
if (clansHall != null)
if (clansHall.getFunction(ClanHall.FUNC_RESTORE_MP) != null)
mpRegenMultiplier *= 1 + clansHall.getFunction(ClanHall.FUNC_RESTORE_MP).getLvl() / 100;
}
}
+ if (player.isEffectingSealofLimit())
+ {
+ init *= 0;
+ mpRegenBonus *= 0;
+ mpRegenMultiplier *= 0;
+ }
// Calculate Movement bonus
if (player.isSitting())
init *= 2.5; // Sitting.
else if (player.isRunning())
init *= 0.7; // Running
@@ -1293 +1293 @@
// Calculate correct baseHpReg value for certain level of PC
init += (player.getLevel() > 10) ? ((player.getLevel() - 1) / 10.0) : 0.5;
// Calculate Movement bonus
if (player.isSitting())
init *= 1.5; // Sitting
else if (!player.isMoving())
init *= 1.1; // Staying
else if (player.isRunning())
init *= 0.7; // Running
+ if (player.isEffectingSealofLimit())
+ {
+ init *= 0;
+ cpRegenBonus *= 0;
+ cpRegenMultiplier *= 0;
+ }
}
else
Index: C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Effect.java
===================================================================
--- C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Effect.java
+++ C:\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\L2Effect.java
@@ -77 +77 @@
SILENT_MOVE,
SEED,
+ SEALOFLIMIT,
PARALYZE,
STUN_SELF,
<skill id="2481" levels="1" name="Seal of Limit">
<set name="mpConsume" val="300"/> <-- custom, too lazy to get good value now XD -->
<set name="target" val="TARGET_AURA"/>
<set name="skillRadius" val="200"/> <-- custom, too lazy to get good value now XD -->
<set name="negateStats" val="BUFF"/>
<set name="negatePower" val="50"/> <-- custom, too lazy to get good value now XD -->
<set name="reuseDelay" val="20000"/> <-- custom, too lazy to get good value now XD -->
<set name="hitTime" val="3000"/> <-- custom, too lazy to get good value now XD -->
<set name="skillType" val="NEGATE"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="isDebuff" val="true"/>
<set name="castRange" val="400"/>
<set name="effectRange" val="1400"/>
<set name="effectPower" val="100"/> <-- custom, too lazy to get good value now XD -->
<for>
<effect count="1" name="SealOfLimit" time="10" val="0" stackOrder="1" stackType="SealOfLimit"/>
</for>
</skill>