diff options
-rw-r--r-- | Changelog-Trunk.txt | 1 | ||||
-rw-r--r-- | src/char/int_party.c | 6 | ||||
-rw-r--r-- | src/char_sql/int_party.c | 6 |
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)
|