Index: src/map/pc.h =================================================================== --- src/map/pc.h (revision 17256) +++ src/map/pc.h (working copy) @@ -672,7 +672,7 @@ #define pc_leftside_mdef(sd) ((sd)->battle_status.mdef2) #define pc_rightside_mdef(sd) ((sd)->battle_status.mdef) #define pc_leftside_matk(sd) (status_base_matk(status_get_status_data(&(sd)->bl), (sd)->status.base_level)) -#define pc_rightside_matk(sd) ((sd)->battle_status.rhw.matk+(sd)->bonus.ematk) +#define pc_rightside_matk(sd) ((sd)->battle_status.rhw.matk+(sd)->battle_status.lhw.matk+(sd)->bonus.ematk) #else #define pc_leftside_atk(sd) ((sd)->battle_status.batk + (sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk) #define pc_rightside_atk(sd) ((sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2) Index: src/map/status.c =================================================================== --- src/map/status.c (revision 17256) +++ src/map/status.c (working copy) @@ -3921,6 +3921,12 @@ status->matk_min += wMatk - variance; status->matk_max += wMatk + variance; } + if( status->lhw.matk > 0 ){ + int wMatk = status->lhw.matk; + int variance = wMatk * status->lhw.wlv / 10; + status->matk_min += wMatk - variance; + status->matk_max += wMatk + variance; + } } #endif if (bl->type&BL_PC && sd->matk_rate != 100) {