Index: D:/Source/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java =================================================================== --- D:/Source/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java (revision 2211) +++ D:/Source/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java (working copy) @@ -1146,13 +1146,14 @@ { case STUN: // For normal Stun Attack, with skillType = STUN - pAtk = player.getPAtk(target); - pDef = target.getPDef(player); - pDef = target.calcStat(Stats.STUN_RES,pDef,target,null); - value = 30 * 100 + (int)(70 * 100 * ((float)skill.getLevel()/maxLevel)); - if (pDef > 0 && pAtk > 0) - value *= 0.6 * pAtk/pDef; - modifier = 100 * target.getCON()/30; + int basechance = 80; + int perLevelBonus = 2; + pDef = target.calcStat(Stats.STUN_RES,0,target,null); + value = 750 * (basechance + perLevelBonus * skill.getLevel()); + modifier = target.getLevel()*(target.getCON() + pDef); + // CHANCE to stun gets no modifier from shots, whatsoever. + //stun+damage skills get a modifier in the damage part ONLY. + ssmodifier = 1; break; case CONFUSION: mAtk = player.getMAtk(target, skill); @@ -1203,18 +1204,17 @@ modifier = 100 * target.getDEX()/30; break; default: - // For normal Stun attack with skillType = PDAM - pAtk = (int)skill.getPower(); - pDef = target.getPDef(player); - pDef = target.calcStat(Stats.STUN_RES,pDef,target,null); -// value = 30 * 100 + (int)(70 * 100 * ((float)skill.getLevel()/maxLevel)); - value = 100 * 100; - if (pDef > 0 && pAtk > 0) - value *= 0.6 * pAtk/pDef; - modifier = 100 * target.getCON()/30; - break; + basechance = 50; + perLevelBonus = 1; + pDef = target.calcStat(Stats.STUN_RES,0,target,null); + value = 750 * (basechance + perLevelBonus * skill.getLevel()); + modifier = target.getLevel()*(target.getCON() + pDef); + //CHANCE to stun gets no modifier from shots, whatsoever. + //stun+damage skills get a modifier in the damage part ONLY. + ssmodifier = 1; + break; } - + if (modifier == 0) { _log.warning("Name: "+target.getName()+" has bad base stat value. Fix datapack or notify dp ppl");