L2-scripts Форум

L2-scripts Форум (http://l2-scripts.ru/forum/index.php)
-   Archive Lindvior, Ertheia, Odyssey, Undergeround, Helios, Grand Crusade (http://l2-scripts.ru/forum/forumdisplay.php?f=103)
-   -   [CORE] Critical damage reduction from all skills except CHARGE BUG! (FIXED) (http://l2-scripts.ru/forum/showthread.php?t=4496)

boulanger 24.07.2014 01:59

[CORE] Critical damage reduction from all skills except CHARGE BUG! (FIXED)
 
[29.07.14 14:13:00:733] INFO gameserver.GameServer: Project Revision: ........ L2s [11859]
[29.07.14 14:13:00:735] INFO gameserver.GameServer: Build Revision: .......... 'G:\tools' doesn't exist
[29.07.14 14:13:00:735] INFO gameserver.GameServer: Update: .................. Chapter 3: Lindvior
[29.07.14 14:13:00:735] INFO gameserver.GameServer: Build date: .............. 2014.07.28 20:03
[29.07.14 14:13:00:735] INFO gameserver.GameServer: Compiler version: ........ 24.51-b03 (Oracle Corporation)
[29.07.14 14:13:00:735] INFO gameserver.GameServer: =========================================

critical damage reduction should NOT work for skills, skills damage should NOT be reduced by critical damage reduction.

NOW THEY ARE wich is wrong, even more BLOW type skills get reduced 4x !!!

PLEASE CHANGE THIS
Код:

{info.blow)
      {
        info.damage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, skill);
        info.damage = target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, skill);
        info.damage += 6.1D * info.crit_static;
      }

change to
Код:

if (info.blow)
      {
        info.damage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, skill);
  int i = target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, skill);
        if (i > info.damage)
  info.damage = i;
        info.damage += 6.1D * info.crit_static;
      }

also
Код:

if (info.crit) {
        if ((skill.isChargeBoost()) || (skill.getSkillType() == Skill.SkillType.CHARGE)) {
          info.damage *= 2.0D;
        } else {
          info.damage = (2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, skill));
        }
      }

change to
Код:

  if (info.crit)
 {
 info.damage *= 2.0D;
 }


boulanger 29.07.2014 11:18

please fix this, because of this critical hit of skills is lower then non critical lol.

FIX ASAP PLZ, i reported this since half a year!

boulanger 29.07.2014 23:57

magic damage IS Reduced by critical damage reduction, verified on retail.

fix plz.

boulanger 06.08.2014 10:28

fix this, this is cancer for this release.

Core 06.08.2014 10:44

Fixed. Closed.

Core 06.08.2014 11:52

Test please and write results.

l2gold 06.08.2014 15:36

а остальные багрепорты фиксить ?

boulanger 07.08.2014 03:25

Цитата:

Сообщение от l2gold (Сообщение 13507)
а остальные багрепорты фиксить ?

big big problem now, normal hits are not influenced by critical damage reduction, wich they should be, and now all skills have the benefits of blows, wich is big mistake.


i repeat, we need to:

1. all skills when they critical, are 2x damage, no matter of critical damage reduction, EXCEPT BLOW TYPE SKILLS AND MAGIC TYPE SKILL. that simple, plz fix asap.

boulanger 07.08.2014 03:30

solution:
instead of this
Код:

else
    {
      info.damage *= (1.0D + (Rnd.get() * attacker.getRandomDamage() * 2.0D - attacker.getRandomDamage()) / 100.0D);
      if (dual) {
        info.damage /= 2.0D;
      }
      if (info.crit)
      {
        double tempDamage = info.damage;
        tempDamage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, null);
        tempDamage = 2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, tempDamage, attacker, null);
        tempDamage += info.crit_static;
        info.damage = Math.max(tempDamage, info.damage);

      }
    }

[1:24:19 AM] Rivelia: reverse this
[1:24:20 AM] Rivelia: to this
[1:24:24 AM] Rivelia:

Код:

else
    {
      info.damage *= (1.0D + (Rnd.get() * attacker.getRandomDamage() * 2.0D - attacker.getRandomDamage()) / 100.0D);
      if (dual) {
        info.damage /= 2.0D;
      }
      if (info.crit)
      {

        info.damage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, null);
        info.damage = (2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, null));
        info.crit_static = attacker.calcStat(Stats.P_CRITICAL_DAMAGE_STATIC, target, null);

        info.damage += info.crit_static;
      }
    }

[1:24:37 AM] Rivelia: and this
[1:24:38 AM] Rivelia:

Код:

if (info.crit) {
        if ((skill.isChargeBoost()) || (skill.getSkillType() == Skill.SkillType.CHARGE)) {
          info.damage *= 2.0D;
        } else {
          info.damage = Math.max(info.damage, 2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, skill));
        }
      }

[1:24:39 AM] Rivelia: to this
[1:24:51 AM] Rivelia:

Код:

if (info.crit) {
          info.damage *= 2.0D;
      }


Core 07.08.2014 03:57

Цитата:

Сообщение от lineage2media (Сообщение 13515)
solution:
instead of this
Код:

else
    {
      info.damage *= (1.0D + (Rnd.get() * attacker.getRandomDamage() * 2.0D - attacker.getRandomDamage()) / 100.0D);
      if (dual) {
        info.damage /= 2.0D;
      }
      if (info.crit)
      {
        double tempDamage = info.damage;
        tempDamage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, null);
        tempDamage = 2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, tempDamage, attacker, null);
        tempDamage += info.crit_static;
        info.damage = Math.max(tempDamage, info.damage);

      }
    }

[1:24:19 AM] Rivelia: reverse this
[1:24:20 AM] Rivelia: to this
[1:24:24 AM] Rivelia:

Код:

else
    {
      info.damage *= (1.0D + (Rnd.get() * attacker.getRandomDamage() * 2.0D - attacker.getRandomDamage()) / 100.0D);
      if (dual) {
        info.damage /= 2.0D;
      }
      if (info.crit)
      {

        info.damage *= 0.01D * attacker.calcStat(Stats.P_CRITICAL_DAMAGE, target, null);
        info.damage = (2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, null));
        info.crit_static = attacker.calcStat(Stats.P_CRITICAL_DAMAGE_STATIC, target, null);

        info.damage += info.crit_static;
      }
    }

[1:24:37 AM] Rivelia: and this
[1:24:38 AM] Rivelia:

Код:

if (info.crit) {
        if ((skill.isChargeBoost()) || (skill.getSkillType() == Skill.SkillType.CHARGE)) {
          info.damage *= 2.0D;
        } else {
          info.damage = Math.max(info.damage, 2.0D * target.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, info.damage, attacker, skill));
        }
      }

[1:24:39 AM] Rivelia: to this
[1:24:51 AM] Rivelia:

Код:

if (info.crit) {
          info.damage *= 2.0D;
      }


From where did you find this information?

boulanger 07.08.2014 10:10

i modified it , it s from our core.

iqman 10.08.2014 02:31

send me again in skype. closed.


Часовой пояс GMT +4, время: 19:45.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot