Originally posted by [b]PanA[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=1751
Excuse me, my english is very bad.
1. NPC_STONESKIN, NPC_ANTIMAGIC
Description on Doddlercon:
NPC_STONESKINNPC_ANTIMAGICCode in status.c:
CODE
if(sc->data[SC_ARMORCHANGE])
def += sc->data[SC_ARMORCHANGE]->val2;
...
if(sc->data[SC_ARMORCHANGE])
mdef += sc->data[SC_ARMORCHANGE]->val3;
...
case SC_ARMORCHANGE:
if (val2 == NPC_ANTIMAGIC)
{ //Boost mdef
val2 =-20;
val3 = 20;
} else { //Boost def
val2 = 20;
val3 =-20;
}
val2*=val1; //20% per level
val3*=val1;
break;
Should be:
CODE
if(sc->data[SC_ARMORCHANGE])
def += def * sc->data[SC_ARMORCHANGE]->val2 / 100;
if(sc->data[SC_ARMORCHANGE])
mdef += mdef * sc->data[SC_ARMORCHANGE]->val3 / 100;
2. LK_JOINTBEAT
Description on iro.wiki:
LK_JOINTBEATNeck Break: Weakens them so Vital Strike caused
2x attack, inflicts bleeding status.
Code in battle.c about SC_JOINTBEAT:
CODE
case LK_JOINTBEAT:
i = 10*skill_lv-50;
// Although not clear, it's being assumed that the 2x damage is only for the break neck ailment.
if (wflag&BREAK_NECK) i*=2;
skillratio += i;
break;
If wflag&BREAK_NECK = false:
i = 10*10-50=50; skillratio = 100 + i = 100 + 50 = 150
If wflag&BREAK_NECK = true:
i = 10*10-50=50; i = 50 * 2 = 100; skillratio = 100 + i = 100 + 100 = 200, but skillratio should be 300.
Code should be something like that:
CODE
case LK_JOINTBEAT:
i = 10*skill_lv-50;
skillratio += i;
// Although not clear, it's being assumed that the 2x damage is only for the break neck ailment.
if (wflag&BREAK_NECK) skillratio*=2;
break;