summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/char/int_party.c6
-rw-r--r--src/char_sql/int_party.c6
3 files changed, 13 insertions, 0 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index b3d27631c..2a8700c1e 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ 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/04/01
+ * Added a exp-even-share check when someone leaves a party. [Skotlex]
* Added function clif_changetraplook to handle changing the appearance of
traps as they are triggered. Fixes all the nullpos related to trap usage.
[Skotlex]
diff --git a/src/char/int_party.c b/src/char/int_party.c
index 1226da650..99c568a50 100644
--- a/src/char/int_party.c
+++ b/src/char/int_party.c
@@ -541,6 +541,12 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id) {
{
mapif_party_leaved(party_id, account_id, char_id);
memset(&p->member[i], 0, sizeof(struct party_member));
+ //Normally unneeded except when a family is even-sharing
+ //and one of the three leaves the party.
+ if(p->exp && !party_check_exp_share(p)){
+ p->exp=0;
+ mapif_party_optionchanged(fd,p,0,0);
+ }
if (party_check_empty(p) == 0)
mapif_party_info(-1, p);// まだ人がいるのでデ?タ送信
return 0;
diff --git a/src/char_sql/int_party.c b/src/char_sql/int_party.c
index 010abdc8f..2bdb13aa9 100644
--- a/src/char_sql/int_party.c
+++ b/src/char_sql/int_party.c
@@ -633,6 +633,12 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id)
} else {
inter_party_tosql(p,PS_DELMEMBER,i);
memset(&p->member[i], 0, sizeof(struct party_member));
+ //Normally unneeded except when a family is even-sharing
+ //and one of the three leaves the party.
+ if(p->exp && !party_check_exp_share(p) ){
+ p->exp=0;
+ mapif_party_optionchanged(fd,p,0,0);
+ }
}
if (party_check_empty(p) == 0)