rendered paste bodyIndex: /L2J_GameServer/src/main/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillChargeDmg.java
===================================================================
--- /L2J_GameServer/src/main/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillChargeDmg.java (revision ****)
+++ /L2J_GameServer/src/main/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillChargeDmg.java (working copy)
@@ -17,6 +17,7 @@
*/
package net.sf.l2j.gameserver.skills.l2skills;
+import net.sf.l2j.gameserver.lib.Rnd;
import net.sf.l2j.gameserver.model.L2Character;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2ItemInstance;
@@ -98,20 +99,26 @@
//boolean dual = caster.isUsingDualWeapon();
boolean shld = Formulas.getInstance().calcShldUse(caster, target);
- boolean crit = Formulas.getInstance().calcCrit(caster.getCriticalHit(target, this));
+ //boolean crit = Formulas.getInstance().calcCrit(caster.getCriticalHit(target, this));
boolean soul = (weapon!= null && weapon.getChargedSoulshot() == L2ItemInstance.CHARGED_SOULSHOT && weapon.getItemType() != L2WeaponType.DAGGER );
int damage = (int)Formulas.getInstance().calcPhysDam(
- caster, target, this, shld, crit, false, soul);
+ caster, target, this, shld, false, false, soul);
if (damage > 0)
{
double finalDamage = damage;
finalDamage = finalDamage+(modifier*finalDamage);
- target.reduceCurrentHp(finalDamage, caster);
+ if (this.isCritical() && Rnd.get(100) < 15)
+ {
+ caster.sendPacket(new SystemMessage(SystemMessage.CRITICAL_HIT));
+ finalDamage = finalDamage * 2;
+ }
+ if (target.isPetrified())
+ {finalDamage= 0;}
+ target.reduceCurrentHp(finalDamage, caster);
+
- if (crit) caster.sendPacket(new SystemMessage(SystemMessage.CRITICAL_HIT));
-
SystemMessage sm = new SystemMessage(SystemMessage.YOU_DID_S1_DMG);
sm.addNumber((int)finalDamage);
caster.sendPacket(sm);