summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Renewal.txt4
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/status.c12
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;
}