Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- hello
- i was playing with some skills stats like
- PVP_PHYSICAL_DMG("pvpPhysDmg"),
- PVP_MAGICAL_DMG("pvpMagicalDmg"),
- PVP_PHYS_SKILL_DMG("pvpPhysSkillsDmg"),
- and i saw a guy asking somewhere for pvpPhysicalDef stats so i tryed to make em.. its based on l2jfrozen also.
- com.l2jfrozen.gameserver.skills.stats
- find this
- PVP_PHYS_SKILL_DMG("pvpPhysSkillsDmg"),
- and below add these
- PVP_PHYSICAL_DEF("pvpPhysDef"),
- PVP_MAGICAL_DEF("pvpMagicalDef"),
- PVP_PHYS_SKILL_DEF("pvpPhysSkillsDef"),
- now go to
- com.l2jfrozen.gameserver.skills.formulas
- find always the first line and add the +
- if((attacker instanceof L2PcInstance || attacker instanceof L2Summon) && (target instanceof L2PcInstance || target instanceof L2Summon))
- {
- if(skill == null)
- {
- damage *= attacker.calcStat(Stats.PVP_PHYSICAL_DMG, 1, null, null);
- +damage /= target.calcStat(Stats.PVP_PHYSICAL_DEF, 1, null, null);
- }
- else
- {
- damage *= attacker.calcStat(Stats.PVP_PHYS_SKILL_DMG, 1, null, null);
- +damage /= target.calcStat(Stats.PVP_PHYS_SKILL_DEF, 1, null, null);
- }
- }
- // Pvp bonusses for dmg
- if((attacker instanceof L2PcInstance || attacker instanceof L2Summon) && (target instanceof L2PcInstance || target instanceof L2Summon))
- {
- if(skill.isMagic())
- {
- damage *= attacker.calcStat(Stats.PVP_MAGICAL_DMG, 1, null, null);
- +damage /= target.calcStat(Stats.PVP_MAGICAL_DEF, 1, null, null);
- }
- else
- {
- damage *= attacker.calcStat(Stats.PVP_PHYS_SKILL_DMG, 1, null, null);
- +damage /= target.calcStat(Stats.PVP_PHYS_SKILL_DEF, 1, null, null);
- }
- }
- // Dmg bonusses in PvP fight
- if(isPvP)
- {
- if(skill == null)
- {
- damage *= attacker.calcStat(Stats.PVP_PHYSICAL_DMG, 1, null, null);
- +damage /= target.calcStat(Stats.PVP_PHYSICAL_DEF, 1, null, null);
- }
- else
- {
- damage *= attacker.calcStat(Stats.PVP_PHYS_SKILL_DMG, 1, null, null);
- damage /= target.calcStat(Stats.PVP_PHYS_SKILL_DMG, 1, null, null);
- }
- }
- so you can go ingame and use as stats "pvpPhysDef" , "pvpMagicalDef" , "pvpPhysSkillsDef"
- its tested and works fine.
- also something else to make a better balance with the mages. Its exactly the same with the critical damage that fighters got. this is for mages magical critical damage in a better way than it is.
- com.l2jfrozen.gameserver.skills.stats
- find
- CRITICAL_DAMAGE_ADD("cAtkAdd"),
- and below add
- MAGICAL_CRITICAL_DAMAGE("mcAtk"),
- MCRITICAL_DAMAGE_ADD("mAtkAdd"),
- MCRIT_VULN("mCritVuln"),
- now go to
- com.l2jfrozen.gameserver.model.actor.stats.CharStat
- find
- public final double getCriticalDmg(L2Character target, double init)
- {
- return calcStat(Stats.CRITICAL_DAMAGE, init, target, null);
- }
- and below add
- /**
- * Return the MCritical Damage rate (base+modifier) of the L2Character.
- *
- * @param target the target
- * @param init the init
- * @return the critical dmg
- */
- public final double getMagicalCriticalDmg(L2Character target, double init)
- {
- return calcStat(Stats.MAGICAL_CRITICAL_DAMAGE, init, target, null);
- }
- now go to
- com.l2jfrozen.gameserver.datatables.xml.AugmentationData
- find and delete this line
- if(as.getStat() == Stats.CRITICAL_DAMAGE)
- and add this one
- if(as.getStat() == Stats.CRITICAL_DAMAGE || as.getStat() == Stats.MAGICAL_CRITICAL_DAMAGE)
- finally go to
- com.l2jfrozen.gameserver.skills.formulas
- find
- else if(mcrit)
- {
- //damage *= 4;
- damage *= Config.MAGIC_CRITICAL_POWER;
- }and replace it with
- else if (mcrit)
- {
- //Finally retail like formula
- double mAtkMultiplied = damage + attacker.calcStat(Stats.MAGICAL_CRITICAL_DAMAGE, damage, target, skill);
- double mAtkVuln = target.calcStat(Stats.MCRIT_VULN, 1, target, null);
- double improvedDamageBymriticalMulAndVuln = mAtkMultiplied * mAtkVuln;
- double improvedDamageBymriticalMulAndAdd = improvedDamageBymriticalMulAndVuln + attacker.calcStat(Stats.MCRITICAL_DAMAGE_ADD, 0, target, skill);
- damage = improvedDamageBymriticalMulAndAdd;
- }
- now you will have stats "mcAtk" , "mAtkAdd", "mCritVuln".
- also i've got a cp drain and mp drain on attack. its like "absorbDam"
- com.l2jfrozen.gameserver.skills.stats
- find
- ABSORB_DAMAGE_PERCENT("absorbDam"),
- and below add
- ABSORB_CP_PERCENT("absorbCp"),
- ABSORB_MP_PERCENT("absorbMp"),
- now go to
- com.l2jfrozen.gameserver.model.L2Characters
- find
- double absorbPercent = getStat().calcStat(Stats.ABSORB_DAMAGE_PERCENT, 0, null, null);
- if (absorbPercent > 0)
- {
- int maxCanAbsorb = (int) (getMaxHp() - getCurrentHp());
- int absorbDamage = (int) (absorbPercent / 100. * damage);
- if (absorbDamage > maxCanAbsorb)
- {
- absorbDamage = maxCanAbsorb; // Can't absord more than max hp
- }
- if (absorbDamage > 0)
- {
- setCurrentHp(getCurrentHp() + absorbDamage);
- // Custom messages - nice but also more network load
- // Custom messages - nice but also more network load
- if (Config.CUSTOM_MSG)
- {
- if (this instanceof L2PcInstance)
- ((L2PcInstance) this).sendMessage("You absorbed " + absorbDamage + " Hp.");
- }
- }
- }
- and below add
- // Absorb CP from the damage inflicted
- double absorbCPPercent = getStat().calcStat(Stats.ABSORB_CP_PERCENT, 0, null, null);
- if (absorbCPPercent > 0)
- {
- int maxCanAbsorb = (int) (getMaxCp() - getCurrentCp());
- int absorbDamage = (int) (absorbCPPercent / 100. * damage);
- if (absorbDamage > maxCanAbsorb)
- {
- absorbDamage = maxCanAbsorb; // Can't absord more than max hp
- }
- if (absorbDamage > 0)
- {
- setCurrentCp(getCurrentCp() + absorbDamage);
- // Custom messages - nice but also more network load
- // Custom messages - nice but also more network load
- if (Config.CUSTOM_MSG)
- {
- if (this instanceof L2PcInstance)
- ((L2PcInstance) this).sendMessage("You absorbed " + absorbDamage + " Cp.");
- }
- }
- }
- // Absorb HP from the damage inflicted
- double absorbMPPercent = getStat().calcStat(Stats.ABSORB_MP_PERCENT, 0, null, null);
- if (absorbMPPercent > 0)
- {
- int maxCanAbsorb = (int) (getMaxMp() - getCurrentMp());
- int absorbDamage = (int) (absorbMPPercent / 100. * damage);
- if (absorbDamage > maxCanAbsorb)
- {
- absorbDamage = maxCanAbsorb; // Can't absord more than max hp
- }
- if (absorbDamage > 0)
- {
- setCurrentMp(getCurrentMp() + absorbDamage);
- // Custom messages - nice but also more network load
- // Custom messages - nice but also more network load
- if (Config.CUSTOM_MSG)
- {
- if (this instanceof L2PcInstance)
- ((L2PcInstance) this).sendMessage("You absorbed " + absorbDamage + " Mp.");
- }
- }
- }
- so u can use "absorbCp", "absorbMp"
- well thats all ;D its nothing special but it can help
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement