|
@@ -3021,13 +3021,16 @@ void status_calc_bl_main(struct block_list *bl, enum scb_flag flag)
|
|
|
status->matk_min = status_base_matk_min(status);
|
|
|
status->matk_max = status_base_matk_max(status);
|
|
|
|
|
|
- // iRO Wiki states as of 2011/02/24:
|
|
|
- // Status MATK = floor(Base Level/4 + INT + INT/2 + DEX/5 + LUK/3)
|
|
|
- status->status_matk = status_get_lv(bl)/4 + status->int_ + status->int_/2 + status->dex/5 + status->luk/3;
|
|
|
- wmatk = sd->weapon_matk + sd->battle_status.rhw.atk2 + sd->equipment_matk;
|
|
|
+ if( sd )
|
|
|
+ {
|
|
|
+ // iRO Wiki states as of 2011/02/24:
|
|
|
+ // Status MATK = floor(Base Level/4 + INT + INT/2 + DEX/5 + LUK/3)
|
|
|
+ status->status_matk = status_get_lv(bl)/4 + status->int_ + status->int_/2 + status->dex/5 + status->luk/3;
|
|
|
+ wmatk = sd->weapon_matk + sd->battle_status.rhw.atk2 + sd->equipment_matk;
|
|
|
|
|
|
- if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_WEAPON )
|
|
|
- wlv = sd->inventory_data[index]->wlv;
|
|
|
+ if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_WEAPON )
|
|
|
+ wlv = sd->inventory_data[index]->wlv;
|
|
|
+ }
|
|
|
|
|
|
// Variance = ± 0.1 * Weapon Level * Base Weapon MATK
|
|
|
// Used in a lot of magical attack calculations still.
|