rendered paste bodyIndex: /trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java
===================================================================
--- /trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java (revision 2173)
+++ /trunk/L2_Gameserver/java/net/sf/l2j/gameserver/skills/Formulas.java (working copy)
@@ -1139,14 +1139,19 @@
{
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;
- break;
+ int basechance = 50;
+ int perLevelBonus = 1;
+ if (skill.getId() == 92) //Shield stun is stronger (only pure stun skill)
+ {
+ basechance = 80;
+ 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;
case CONFUSION:
case MUTE:
case PARALYZE:
@@ -1178,18 +1183,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");