Issue information

Issue ID
#1751
Status
New
Severity
None
Started
Hercules Elf Bot
Jun 23, 2008 19:38
Last Post
Hercules Elf Bot
Jun 23, 2008 19:38
Confirmation
N/A

Hercules Elf Bot - Jun 23, 2008 19:38

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_STONESKIN
NPC_ANTIMAGIC
Code 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_JOINTBEAT
Neck 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;