diff options
-rw-r--r-- | Changelog-Renewal.txt | 4 | ||||
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/status.c | 12 |
3 files changed, 12 insertions, 8 deletions
diff --git a/Changelog-Renewal.txt b/Changelog-Renewal.txt index 3645dae67..6ae61d8c8 100644 --- a/Changelog-Renewal.txt +++ b/Changelog-Renewal.txt @@ -1,5 +1,9 @@ Date Added +2011/08/28 + * Rev. 14948 Fixed Blessing crashing the server when used on monsters, monster weapon attack mechanics are currently unknown. [L0ne_W0lf] + * Updated conditions for UNT_EPICLESIS and AB_ADORAMUS (two cases of || to &&.) + 2011/08/27 * Fixed AB_ADORAMUS's partner and item check. [Inkfish] * Added a null pointer check to AB_CLEMENTIA and AB_CANTO. [Inkfish] diff --git a/src/map/skill.c b/src/map/skill.c index 3ee28ce87..9aac438d4 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -8017,7 +8017,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns case UNT_EPICLESIS: sg->val2--; // track when units should be healed. Initial tick heals immediately. - if ( !battle_check_undead(tstatus->race, tstatus->def_ele) || bl->type == BL_PC) + if ( !battle_check_undead(tstatus->race, tstatus->def_ele) && bl->type == BL_PC) { //Effect only players who are not undead element. //Unknown if any status effects should prevent Epiclesis. @@ -8429,7 +8429,7 @@ int skill_check_pc_partner (struct map_session_data *sd, short skill_id, short* memset (p_sd, 0, sizeof(p_sd)); i = map_foreachinrange(skill_check_condition_char_sub, &sd->bl, range, BL_PC, &sd->bl, &c, &p_sd, skill_id); - if (skill_id != PR_BENEDICTIO || skill_id != AB_ADORAMUS) //Apply the average lv to encore skills. + if (skill_id != PR_BENEDICTIO && skill_id != AB_ADORAMUS) //Apply the average lv to encore skills. *skill_lv = (i+(*skill_lv))/(c+1); //I know c should be one, but this shows how it could be used for the average of n partners. return c; } diff --git a/src/map/status.c b/src/map/status.c index b1df18ee6..bfa6be76d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3015,19 +3015,19 @@ void status_calc_bl_main(struct block_list *bl, enum scb_flag flag) if(flag&SCB_MATK) { int wlv = 1, wmatk = 0; - short index = sd->equip_index[EQI_HAND_R]; //New matk 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; + 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; + short index = sd->equip_index[EQI_HAND_R]; 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; } @@ -7867,7 +7867,7 @@ static bool status_readdb_job1(char* fields[], int columns, int current) { aspd_base[idx][i] = atoi(fields[i+5]); } - shield_aspd_base[idx] = atoi(fields[29]); // Won't take 5+MAX_WEAPON_TYPE+1 + shield_aspd_base[idx] = atoi(fields[MAX_WEAPON_TYPE+5]); return true; } |