Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 17299) +++ src/map/battle.c (working copy) @@ -1516,10 +1516,8 @@ short type = 0; int damage = 0; - if (!sd) - { //Mobs/Pets - if(flag&4) - { + if (!sd) { //Mobs/Pets + if(flag&4) { atkmin = status->matk_min; atkmax = status->matk_max; } else { @@ -1532,8 +1530,7 @@ atkmax = wa->atk; type = (wa == &status->lhw)?EQI_HAND_L:EQI_HAND_R; - if (!(flag&1) || (flag&2)) - { //Normal attacks + if (!(flag&1) || (flag&2)) { //Normal attacks atkmin = status->dex; if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]]) @@ -1542,8 +1539,7 @@ if (atkmin > atkmax) atkmin = atkmax; - if(flag&2 && !(flag&16)) - { //Bows + if(flag&2 && !(flag&16)) { //Bows atkmin = atkmin*atkmax/100; if (atkmin > atkmax) atkmax = atkmin; @@ -1560,8 +1556,7 @@ else damage = atkmax; - if (sd) - { + if (sd) { //rodatazone says the range is 0~arrow_atk-1 for non crit if (flag&2 && sd->bonus.arrow_atk) damage += ( (flag&1) ? sd->bonus.arrow_atk : rnd()%sd->bonus.arrow_atk ); @@ -1576,6 +1571,10 @@ //Finally, add baseatk if(flag&4) damage += status->matk_min; +#ifdef RENEWAL + else if(flag&32) + damage += status->matk_min + status->batk; +#endif else damage += status->batk; @@ -2161,7 +2160,11 @@ { i = (flag.cri?1:0)| (flag.arrow?2:0)| +#ifndef RENEWAL (skill_id == HW_MAGICCRASHER?4:0)| +#else + (skill_id == HW_MAGICCRASHER?32:0)| +#endif (!skill_id && sc && sc->data[SC_CHANGE]?4:0)| (skill_id == MO_EXTREMITYFIST?8:0)| (sc && sc->data[SC_WEAPONPERFECTION]?8:0);