Sync with L2jServer HighFive Sep 8th 2015.
This commit is contained in:
@ -1242,7 +1242,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
shld1 = Formulas.calcShldUse(this, target);
|
||||
|
||||
// Calculate if hit is critical
|
||||
crit1 = Formulas.calcCrit(getStat().getCriticalHit(target, null), false, target);
|
||||
crit1 = Formulas.calcCrit(this, target);
|
||||
|
||||
// Calculate physical damages
|
||||
damage1 = (int) Formulas.calcPhysDam(this, target, null, shld1, crit1, attack.hasSoulshot());
|
||||
@ -1311,7 +1311,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
shld1 = Formulas.calcShldUse(this, target);
|
||||
|
||||
// Calculate if hit is critical
|
||||
crit1 = Formulas.calcCrit(getStat().getCriticalHit(target, null), false, target);
|
||||
crit1 = Formulas.calcCrit(this, target);
|
||||
|
||||
// Calculate physical damages
|
||||
damage1 = (int) Formulas.calcPhysDam(this, target, null, shld1, crit1, attack.hasSoulshot());
|
||||
@ -1377,7 +1377,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
shld1 = Formulas.calcShldUse(this, target);
|
||||
|
||||
// Calculate if hit 1 is critical
|
||||
crit1 = Formulas.calcCrit(getStat().getCriticalHit(target, null), false, target);
|
||||
crit1 = Formulas.calcCrit(this, target);
|
||||
|
||||
// Calculate physical damages of hit 1
|
||||
damage1 = (int) Formulas.calcPhysDam(this, target, null, shld1, crit1, attack.hasSoulshot());
|
||||
@ -1391,7 +1391,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
shld2 = Formulas.calcShldUse(this, target);
|
||||
|
||||
// Calculate if hit 2 is critical
|
||||
crit2 = Formulas.calcCrit(getStat().getCriticalHit(target, null), false, target);
|
||||
crit2 = Formulas.calcCrit(this, target);
|
||||
|
||||
// Calculate physical damages of hit 2
|
||||
damage2 = (int) Formulas.calcPhysDam(this, target, null, shld2, crit2, attack.hasSoulshot());
|
||||
@ -1567,7 +1567,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
shld1 = Formulas.calcShldUse(this, target);
|
||||
|
||||
// Calculate if hit is critical
|
||||
crit1 = Formulas.calcCrit(getStat().getCriticalHit(target, null), false, target);
|
||||
crit1 = Formulas.calcCrit(this, target);
|
||||
|
||||
// Calculate physical damages
|
||||
damage1 = (int) Formulas.calcPhysDam(this, target, null, shld1, crit1, attack.hasSoulshot());
|
||||
@ -6330,7 +6330,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
return getStat().getMaxRecoverableCp();
|
||||
}
|
||||
|
||||
public int getMAtk(L2Character target, Skill skill)
|
||||
public final double getMAtk(L2Character target, Skill skill)
|
||||
{
|
||||
return getStat().getMAtk(target, skill);
|
||||
}
|
||||
@ -6365,7 +6365,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
return getStat().getMCriticalHit(target, skill);
|
||||
}
|
||||
|
||||
public int getMDef(L2Character target, Skill skill)
|
||||
public final double getMDef(L2Character target, Skill skill)
|
||||
{
|
||||
return getStat().getMDef(target, skill);
|
||||
}
|
||||
@ -6375,7 +6375,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
return getStat().getMReuseRate(skill);
|
||||
}
|
||||
|
||||
public int getPAtk(L2Character target)
|
||||
public final double getPAtk(L2Character target)
|
||||
{
|
||||
return getStat().getPAtk(target);
|
||||
}
|
||||
@ -6385,7 +6385,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
return getStat().getPAtkSpd();
|
||||
}
|
||||
|
||||
public int getPDef(L2Character target)
|
||||
public final double getPDef(L2Character target)
|
||||
{
|
||||
return getStat().getPDef(target);
|
||||
}
|
||||
|
@ -842,7 +842,9 @@ public class L2PetInstance extends L2Summon
|
||||
dropItemHere(dropit, false);
|
||||
}
|
||||
|
||||
/** @return Returns the mount able. */
|
||||
/**
|
||||
* @return Returns the mount able.
|
||||
*/
|
||||
@Override
|
||||
public boolean isMountable()
|
||||
{
|
||||
@ -1220,18 +1222,6 @@ public class L2PetInstance extends L2Summon
|
||||
return getStat().getCriticalHit(target, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMAtk(L2Character target, Skill skill)
|
||||
{
|
||||
return getStat().getMAtk(target, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMDef(L2Character target, Skill skill)
|
||||
{
|
||||
return getStat().getMDef(target, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int getSkillLevel(int skillId)
|
||||
{
|
||||
|
@ -191,7 +191,7 @@ public class CharStat
|
||||
*/
|
||||
public int getCriticalHit(L2Character target, Skill skill)
|
||||
{
|
||||
int val = (int) calcStat(Stats.CRITICAL_RATE, _activeChar.getTemplate().getBaseCritRate(), target, skill);
|
||||
double val = (int) calcStat(Stats.CRITICAL_RATE, _activeChar.getTemplate().getBaseCritRate(), target, skill);
|
||||
|
||||
int maxCrit = (int) _activeChar.getStat().calcStat(Stats.MAX_PHYS_CRIT_RATE, 0, null, null);
|
||||
|
||||
@ -207,7 +207,16 @@ public class CharStat
|
||||
}
|
||||
}
|
||||
|
||||
return val;
|
||||
return (int) (val + .5);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param base
|
||||
* @return the Critical Hit Pos rate of the L2Character
|
||||
*/
|
||||
public int getCriticalHitPos(int base)
|
||||
{
|
||||
return (int) calcStat(Stats.CRITICAL_RATE_POS, base);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -329,7 +338,7 @@ public class CharStat
|
||||
* @param skill The L2Skill used against the target
|
||||
* @return
|
||||
*/
|
||||
public int getMAtk(L2Character target, Skill skill)
|
||||
public double getMAtk(L2Character target, Skill skill)
|
||||
{
|
||||
float bonusAtk = 1;
|
||||
if (Config.L2JMOD_CHAMPION_ENABLE && _activeChar.isChampion())
|
||||
@ -342,7 +351,7 @@ public class CharStat
|
||||
}
|
||||
|
||||
// Calculate modifiers Magic Attack
|
||||
return (int) calcStat(Stats.MAGIC_ATTACK, _activeChar.getTemplate().getBaseMAtk() * bonusAtk, target, skill);
|
||||
return calcStat(Stats.MAGIC_ATTACK, _activeChar.getTemplate().getBaseMAtk() * bonusAtk, target, skill);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -389,7 +398,7 @@ public class CharStat
|
||||
* @param skill The L2Skill used against the target
|
||||
* @return the MDef (base+modifier) of the L2Character against a skill in function of abnormal effects in progress.
|
||||
*/
|
||||
public int getMDef(L2Character target, Skill skill)
|
||||
public double getMDef(L2Character target, Skill skill)
|
||||
{
|
||||
// Get the base MDef of the L2Character
|
||||
double defence = _activeChar.getTemplate().getBaseMDef();
|
||||
@ -401,7 +410,7 @@ public class CharStat
|
||||
}
|
||||
|
||||
// Calculate modifiers Magic Attack
|
||||
return (int) calcStat(Stats.MAGIC_DEFENCE, defence, target, skill);
|
||||
return calcStat(Stats.MAGIC_DEFENCE, defence, target, skill);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -526,7 +535,7 @@ public class CharStat
|
||||
* @param target
|
||||
* @return the PAtk (base+modifier) of the L2Character.
|
||||
*/
|
||||
public int getPAtk(L2Character target)
|
||||
public double getPAtk(L2Character target)
|
||||
{
|
||||
float bonusAtk = 1;
|
||||
if (Config.L2JMOD_CHAMPION_ENABLE && _activeChar.isChampion())
|
||||
@ -537,7 +546,7 @@ public class CharStat
|
||||
{
|
||||
bonusAtk *= Config.RAID_PATTACK_MULTIPLIER;
|
||||
}
|
||||
return (int) calcStat(Stats.POWER_ATTACK, _activeChar.getTemplate().getBasePAtk() * bonusAtk, target, null);
|
||||
return calcStat(Stats.POWER_ATTACK, _activeChar.getTemplate().getBasePAtk() * bonusAtk, target, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -558,9 +567,9 @@ public class CharStat
|
||||
* @param target
|
||||
* @return the PDef (base+modifier) of the L2Character.
|
||||
*/
|
||||
public int getPDef(L2Character target)
|
||||
public double getPDef(L2Character target)
|
||||
{
|
||||
return (int) calcStat(Stats.POWER_DEFENCE, (_activeChar.isRaid()) ? _activeChar.getTemplate().getBasePDef() * Config.RAID_PDEFENCE_MULTIPLIER : _activeChar.getTemplate().getBasePDef(), target, null);
|
||||
return calcStat(Stats.POWER_DEFENCE, (_activeChar.isRaid()) ? _activeChar.getTemplate().getBasePDef() * Config.RAID_PDEFENCE_MULTIPLIER : _activeChar.getTemplate().getBasePDef(), target, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -167,27 +167,27 @@ public class PetStat extends SummonStat
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMAtk(L2Character target, Skill skill)
|
||||
public double getMAtk(L2Character target, Skill skill)
|
||||
{
|
||||
return (int) calcStat(Stats.MAGIC_ATTACK, getActiveChar().getPetLevelData().getPetMAtk(), target, skill);
|
||||
return calcStat(Stats.MAGIC_ATTACK, getActiveChar().getPetLevelData().getPetMAtk(), target, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMDef(L2Character target, Skill skill)
|
||||
public double getMDef(L2Character target, Skill skill)
|
||||
{
|
||||
return (int) calcStat(Stats.MAGIC_DEFENCE, getActiveChar().getPetLevelData().getPetMDef(), target, skill);
|
||||
return calcStat(Stats.MAGIC_DEFENCE, getActiveChar().getPetLevelData().getPetMDef(), target, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPAtk(L2Character target)
|
||||
public double getPAtk(L2Character target)
|
||||
{
|
||||
return (int) calcStat(Stats.POWER_ATTACK, getActiveChar().getPetLevelData().getPetPAtk(), target, null);
|
||||
return calcStat(Stats.POWER_ATTACK, getActiveChar().getPetLevelData().getPetPAtk(), target, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPDef(L2Character target)
|
||||
public double getPDef(L2Character target)
|
||||
{
|
||||
return (int) calcStat(Stats.POWER_DEFENCE, getActiveChar().getPetLevelData().getPetPDef(), target, null);
|
||||
return calcStat(Stats.POWER_DEFENCE, getActiveChar().getPetLevelData().getPetPDef(), target, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -531,7 +531,7 @@ public final class Formulas
|
||||
double baseMod = ((77 * (power + (attacker.getPAtk(target) * ssboost))) / defence);
|
||||
// Critical
|
||||
double criticalMod = (attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill));
|
||||
double criticalModPos = 1 + ((attacker.calcStat(Stats.CRITICAL_DAMAGE_POSITION, 1, target, skill) - 1) / 2);
|
||||
double criticalModPos = 1 + ((attacker.calcStat(Stats.CRITICAL_DAMAGE_POS, 1, target, skill) - 1) / 2);
|
||||
double criticalVulnMod = (target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, skill));
|
||||
double criticalAddMod = ((attacker.getStat().calcStat(Stats.CRITICAL_DAMAGE_ADD, 0) * 6.1 * 77) / defence);
|
||||
double criticalAddVuln = target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE_ADD, 0, target, skill);
|
||||
@ -623,14 +623,14 @@ public final class Formulas
|
||||
double baseMod = ((77 * (skill.getPower(isPvP, isPvE) + attacker.getPAtk(target))) / defence) * ssboost;
|
||||
// Critical
|
||||
double criticalMod = (attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill));
|
||||
double criticalModPos = 1 + ((attacker.calcStat(Stats.CRITICAL_DAMAGE_POSITION, 1, target, skill) - 1) / 2);
|
||||
double criticalModPos = 1 + ((attacker.calcStat(Stats.CRITICAL_DAMAGE_POS, 1, target, skill) - 1) / 2);
|
||||
double criticalVulnMod = (target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, skill));
|
||||
double criticalAddMod = ((attacker.calcStat(Stats.CRITICAL_DAMAGE_ADD, 0, target, skill) * 6.1 * 77) / defence);
|
||||
double criticalAddVuln = target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE_ADD, 0, target, skill);
|
||||
// Trait, elements
|
||||
double generalTraitMod = calcGeneralTraitBonus(attacker, target, skill.getTraitType(), false);
|
||||
double attributeMod = calcAttributeBonus(attacker, target, skill);
|
||||
double weaponMod = attacker.getRandomDamageMultiplier();
|
||||
double weaponMod = attacker.getRandomDamageMultiplier(); // 1?
|
||||
|
||||
double penaltyMod = 1;
|
||||
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 2))
|
||||
@ -758,15 +758,15 @@ public final class Formulas
|
||||
|
||||
if (crit)
|
||||
{
|
||||
// Finally retail like formula
|
||||
damage = 2 * attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill) * attacker.calcStat(Stats.CRITICAL_DAMAGE_POSITION, 1, target, skill) * target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, null) * ((70 * damage) / (defence * reduceDef));
|
||||
// Crit dmg add is almost useless in normal hits...
|
||||
damage += ((attacker.calcStat(Stats.CRITICAL_DAMAGE_ADD, 0, target, skill) * 70) / (defence * reduceDef));
|
||||
// Retail like formula.
|
||||
damage = 2 * attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill) * attacker.calcStat(Stats.CRITICAL_DAMAGE_POS, 1, target, skill) * target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, null) * ((76 * damage) / (defence * reduceDef));
|
||||
// Crit dmg add is almost useless in normal hits.
|
||||
damage += ((attacker.calcStat(Stats.CRITICAL_DAMAGE_ADD, 0, target, skill) * 77) / (defence * reduceDef));
|
||||
damage += target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE_ADD, 0, target, skill);
|
||||
}
|
||||
else
|
||||
{
|
||||
damage = (70 * damage) / (defence * reduceDef);
|
||||
damage = (76 * damage) / (defence * reduceDef);
|
||||
}
|
||||
|
||||
damage *= calcAttackTraitBonus(attacker, target);
|
||||
@ -879,7 +879,7 @@ public final class Formulas
|
||||
|
||||
public static final double calcMagicDam(L2Character attacker, L2Character target, Skill skill, byte shld, boolean sps, boolean bss, boolean mcrit)
|
||||
{
|
||||
int mDef = target.getMDef(attacker, skill);
|
||||
double mDef = target.getMDef(attacker, skill);
|
||||
switch (shld)
|
||||
{
|
||||
case SHIELD_DEFENSE_SUCCEED:
|
||||
@ -1024,7 +1024,7 @@ public final class Formulas
|
||||
|
||||
public static final double calcMagicDam(L2CubicInstance attacker, L2Character target, Skill skill, boolean mcrit, byte shld)
|
||||
{
|
||||
int mDef = target.getMDef(attacker.getOwner(), skill);
|
||||
double mDef = target.getMDef(attacker.getOwner(), skill);
|
||||
switch (shld)
|
||||
{
|
||||
case SHIELD_DEFENSE_SUCCEED:
|
||||
@ -1108,17 +1108,30 @@ public final class Formulas
|
||||
return damage;
|
||||
}
|
||||
|
||||
public static final boolean calcCrit(L2Character attacker, L2Character target)
|
||||
{
|
||||
return calcCrit(attacker, target, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true in case of critical hit
|
||||
* @param rate
|
||||
* @param skill
|
||||
* @param attacker
|
||||
* @param target
|
||||
* @param skill
|
||||
* @return
|
||||
*/
|
||||
public static final boolean calcCrit(double rate, boolean skill, L2Character target)
|
||||
public static final boolean calcCrit(L2Character attacker, L2Character target, Skill skill)
|
||||
{
|
||||
double finalRate = target.getStat().calcStat(Stats.DEFENCE_CRITICAL_RATE, rate, null, null) + target.getStat().calcStat(Stats.DEFENCE_CRITICAL_RATE_ADD, 0, null, null);
|
||||
return finalRate > Rnd.get(1000);
|
||||
double rate = 0.d;
|
||||
if (skill != null)
|
||||
{
|
||||
rate = skill.getBaseCritRate() * 10 * BaseStats.STR.calcBonus(attacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
rate = (int) attacker.getStat().calcStat(Stats.CRITICAL_RATE_POS, attacker.getStat().getCriticalHit(target, null));
|
||||
}
|
||||
return (target.getStat().calcStat(Stats.DEFENCE_CRITICAL_RATE, rate, null, null) + target.getStat().calcStat(Stats.DEFENCE_CRITICAL_RATE_ADD, 0, null, null)) > Rnd.get(1000);
|
||||
}
|
||||
|
||||
public static final boolean calcMCrit(double mRate)
|
||||
@ -1740,35 +1753,21 @@ public final class Formulas
|
||||
public static double calcAttributeBonus(L2Character attacker, L2Character target, Skill skill)
|
||||
{
|
||||
int attack_attribute;
|
||||
int defence_attribute;
|
||||
|
||||
if (skill != null)
|
||||
{
|
||||
if (skill.getElement() == -1)
|
||||
if ((skill.getElement() == -1) || (attacker.getAttackElement() != skill.getElement()))
|
||||
{
|
||||
attack_attribute = 0;
|
||||
defence_attribute = target.getDefenseElementValue((byte) -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (attacker.getAttackElement() == skill.getElement())
|
||||
{
|
||||
attack_attribute = attacker.getAttackElementValue(attacker.getAttackElement()) + skill.getElementPower();
|
||||
defence_attribute = target.getDefenseElementValue(attacker.getAttackElement());
|
||||
}
|
||||
else
|
||||
{
|
||||
attack_attribute = skill.getElementPower();
|
||||
defence_attribute = target.getDefenseElementValue(skill.getElement());
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
attack_attribute = attacker.getAttackElementValue(attacker.getAttackElement()) + skill.getElementPower();
|
||||
}
|
||||
else
|
||||
{
|
||||
attack_attribute = attacker.getAttackElementValue(attacker.getAttackElement());
|
||||
defence_attribute = target.getDefenseElementValue(attacker.getAttackElement());
|
||||
}
|
||||
|
||||
int defence_attribute = target.getDefenseElementValue(attacker.getAttackElement());
|
||||
|
||||
double attack_attribute_mod = 0;
|
||||
double defence_attribute_mod = 0;
|
||||
|
||||
|
@ -55,9 +55,9 @@ public enum Stats
|
||||
MAGIC_REUSE_RATE("mReuse"), // Magic Skill Reuse Rate
|
||||
DANCE_REUSE("dReuse"), // Dance Skill Reuse Rate
|
||||
SHIELD_DEFENCE("sDef"),
|
||||
CRITICAL_DAMAGE("cAtk"),
|
||||
CRITICAL_DAMAGE_POSITION("cAtkPos"),
|
||||
CRITICAL_DAMAGE_ADD("cAtkAdd"), // this is another type for special critical damage mods - vicious stance, critical power and critical damage SA
|
||||
CRITICAL_DAMAGE("critDmg"),
|
||||
CRITICAL_DAMAGE_POS("critDmgPos"),
|
||||
CRITICAL_DAMAGE_ADD("critDmgAdd"), // this is another type for special critical damage mods - vicious stance, critical power and critical damage SA
|
||||
MAGIC_CRIT_DMG("mCritPower"),
|
||||
MAGIC_CRIT_DMG_ADD("mCritPowerAdd"),
|
||||
MOMENTUM_SKILL_POWER("momentumSkillPower"),
|
||||
@ -86,7 +86,8 @@ public enum Stats
|
||||
DEFENCE_CRITICAL_DAMAGE("defCritDamage"),
|
||||
DEFENCE_CRITICAL_DAMAGE_ADD("defCritDamageAdd"), // Resistance to critical damage in value (Example: +100 will be 100 more critical damage, NOT 100% more).
|
||||
SHIELD_RATE("rShld"),
|
||||
CRITICAL_RATE("rCrit"),
|
||||
CRITICAL_RATE("critRate"),
|
||||
CRITICAL_RATE_POS("critRatePos"),
|
||||
MAX_PHYS_CRIT_RATE("maxPhysCritRate"),
|
||||
BLOW_RATE("blowRate"),
|
||||
MCRITICAL_RATE("mCritRate"),
|
||||
@ -169,18 +170,18 @@ public enum Stats
|
||||
// ExSkill
|
||||
INV_LIM("inventoryLimit"),
|
||||
WH_LIM("whLimit"),
|
||||
FREIGHT_LIM("FreightLimit"),
|
||||
P_SELL_LIM("PrivateSellLimit"),
|
||||
P_BUY_LIM("PrivateBuyLimit"),
|
||||
REC_D_LIM("DwarfRecipeLimit"),
|
||||
REC_C_LIM("CommonRecipeLimit"),
|
||||
FREIGHT_LIM("freightLimit"),
|
||||
P_SELL_LIM("privateSellLimit"),
|
||||
P_BUY_LIM("privateBuyLimit"),
|
||||
REC_D_LIM("dwarfRecipeLimit"),
|
||||
REC_C_LIM("commonRecipeLimit"),
|
||||
|
||||
// C4 Stats
|
||||
PHYSICAL_MP_CONSUME_RATE("PhysicalMpConsumeRate"),
|
||||
MAGICAL_MP_CONSUME_RATE("MagicalMpConsumeRate"),
|
||||
DANCE_MP_CONSUME_RATE("DanceMpConsumeRate"),
|
||||
BOW_MP_CONSUME_RATE("BowMpConsumeRate"),
|
||||
MP_CONSUME("MpConsume"),
|
||||
PHYSICAL_MP_CONSUME_RATE("physicalMpConsumeRate"),
|
||||
MAGICAL_MP_CONSUME_RATE("magicalMpConsumeRate"),
|
||||
DANCE_MP_CONSUME_RATE("danceMpConsumeRate"),
|
||||
BOW_MP_CONSUME_RATE("bowMpConsumeRate"),
|
||||
MP_CONSUME("mpConsume"),
|
||||
|
||||
// Shield Stats
|
||||
SHIELD_DEFENCE_ANGLE("shieldDefAngle"),
|
||||
|
@ -97,18 +97,18 @@ public class GMViewCharacterInfo extends L2GameServerPacket
|
||||
writeC(_activeChar.getInventory().canEquipCloak() ? 1 : 0); // CT2.3
|
||||
writeD(0x00);
|
||||
writeH(0x00);
|
||||
writeD(_activeChar.getPAtk(null));
|
||||
writeD((int) _activeChar.getPAtk(null));
|
||||
writeD(_activeChar.getPAtkSpd());
|
||||
writeD(_activeChar.getPDef(null));
|
||||
writeD((int) _activeChar.getPDef(null));
|
||||
writeD(_activeChar.getEvasionRate(null));
|
||||
writeD(_activeChar.getAccuracy());
|
||||
writeD(_activeChar.getCriticalHit(null, null));
|
||||
writeD(_activeChar.getMAtk(null, null));
|
||||
writeD((int) _activeChar.getMAtk(null, null));
|
||||
|
||||
writeD(_activeChar.getMAtkSpd());
|
||||
writeD(_activeChar.getPAtkSpd());
|
||||
|
||||
writeD(_activeChar.getMDef(null, null));
|
||||
writeD((int) _activeChar.getMDef(null, null));
|
||||
writeD(_activeChar.getMagicEvasionRate(null));
|
||||
writeD(_activeChar.getMagicAccuracy());
|
||||
writeD(_activeChar.getMCriticalHit(null, null));
|
||||
|
@ -153,13 +153,13 @@ public class PetInfo extends L2GameServerPacket
|
||||
|
||||
writeD(_summon.isPet() ? _summon.getInventory().getTotalWeight() : 0);// weight
|
||||
writeD(_summon.getMaxLoad());// max weight it can carry
|
||||
writeD(_summon.getPAtk(null));// patk
|
||||
writeD(_summon.getPDef(null));// pdef
|
||||
writeD((int) _summon.getPAtk(null));// patk
|
||||
writeD((int) _summon.getPDef(null));// pdef
|
||||
writeD(_summon.getAccuracy());// accuracy
|
||||
writeD(_summon.getEvasionRate(null));// evasion
|
||||
writeD(_summon.getCriticalHit(null, null));// critical
|
||||
writeD(_summon.getMAtk(null, null));// matk
|
||||
writeD(_summon.getMDef(null, null));// mdef
|
||||
writeD((int) _summon.getMAtk(null, null));// matk
|
||||
writeD((int) _summon.getMDef(null, null));// mdef
|
||||
writeD(_summon.getMagicAccuracy()); // magic accuracy
|
||||
writeD(_summon.getMagicEvasionRate(null)); // magic evasion
|
||||
writeD(_summon.getMCriticalHit(null, null)); // mcritical
|
||||
|
@ -214,17 +214,17 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
{
|
||||
writeH(56);
|
||||
writeH(_activeChar.getActiveWeaponItem() != null ? 40 : 20);
|
||||
writeD(_activeChar.getPAtk(null));
|
||||
writeD((int) _activeChar.getPAtk(null));
|
||||
writeD(_activeChar.getPAtkSpd());
|
||||
writeD(_activeChar.getPDef(null));
|
||||
writeD((int) _activeChar.getPDef(null));
|
||||
writeD(_activeChar.getEvasionRate(null));
|
||||
writeD(_activeChar.getAccuracy());
|
||||
writeD(_activeChar.getCriticalHit(null, null));
|
||||
writeD(_activeChar.getMAtk(null, null));
|
||||
writeD((int) _activeChar.getMAtk(null, null));
|
||||
writeD(_activeChar.getMAtkSpd());
|
||||
writeD(_activeChar.getPAtkSpd()); // Seems like atk speed - 1
|
||||
writeD(_activeChar.getMagicEvasionRate(null));
|
||||
writeD(_activeChar.getMDef(null, null));
|
||||
writeD((int) _activeChar.getMDef(null, null));
|
||||
writeD(_activeChar.getMagicAccuracy());
|
||||
writeD(_activeChar.getMCriticalHit(null, null));
|
||||
}
|
||||
|
Reference in New Issue
Block a user