summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/char/int_party.c5
-rw-r--r--src/char_sql/int_party.c5
-rw-r--r--src/map/status.c4
4 files changed, 15 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index c6f3e555a..1438d349f 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/10
+ * Corrected Advanced Jobs HP bonus from 30% -> 25% [Skotlex]
+ * Hopefully fixed family-party-even-share not breaking when a member logs
+ out. [Skotlex]
* Should have fixed the login-sql crash when passed user-name's length is
beyond the limit. [Skotlex]
* Changed setting attack_attr_none to affect all neutral-element attacks.
diff --git a/src/char/int_party.c b/src/char/int_party.c
index 5d9ab9123..62fc1ca7f 100644
--- a/src/char/int_party.c
+++ b/src/char/int_party.c
@@ -638,6 +638,11 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
p->party.member[i].online = online;
if (online) p->party.count++;
else p->party.count--;
+ if (p->family && p->party.exp && !party_check_exp_share(p))
+ { //Even-share lost.
+ p->party.exp = 0;
+ mapif_party_optionchanged(0, &p->party, 0, 0);
+ }
}
if (p->party.member[i].lv != lv) {
if(p->party.member[i].lv == p->min_lv ||
diff --git a/src/char_sql/int_party.c b/src/char_sql/int_party.c
index 79fb57a95..115c59cd2 100644
--- a/src/char_sql/int_party.c
+++ b/src/char_sql/int_party.c
@@ -726,6 +726,11 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
p->party.member[i].online = online;
if (online) p->party.count++;
else p->party.count--;
+ if (p->family && p->party.exp && !party_check_exp_share(p))
+ { //Even-share lost.
+ p->party.exp = 0;
+ mapif_party_optionchanged(0, &p->party, 0, 0);
+ }
}
if (p->party.member[i].lv != lv) {
if(p->party.member[i].lv == p->min_lv ||
diff --git a/src/map/status.c b/src/map/status.c
index 48560f17c..726691383 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1424,7 +1424,7 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta
+ hp_sigma_val[sd->status.class_][sd->status.base_level-1])/100
* (100 + status->vit)/100 + sd->param_equip[2];
if (sd->class_&JOBL_UPPER)
- val += val * 30/100;
+ val += val * 25/100;
else if (sd->class_&JOBL_BABY)
val -= val * 30/100;
if ((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc_famerank(sd->char_id, MAPID_TAEKWON))
@@ -1441,7 +1441,7 @@ static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct sta
val = (1000 + sd->status.base_level*sp_coefficient[sd->status.class_])/100
* (100 + status->int_)/100 + sd->param_equip[3];
if (sd->class_&JOBL_UPPER)
- val += val * 30/100;
+ val += val * 25/100;
else if (sd->class_&JOBL_BABY)
val -= val * 30/100;
if ((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc_famerank(sd->char_id, MAPID_TAEKWON))