diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | src/map/clif.c | 16 |
2 files changed, 16 insertions, 3 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 53bac0865..40e5456e8 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/03/10 + * Added missing check to only allow the leader of a party to modify + its exp share settings (bugreport:12) [ultramage] 2008/03/09 * Modified attack_walk_delay so it behaves on a 'per-object' basis, and changed the default to 15 (all types). diff --git a/src/map/clif.c b/src/map/clif.c index 753916478..1b6b143bc 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9880,15 +9880,25 @@ void clif_parse_RemovePartyMember(int fd, struct map_session_data *sd) void clif_parse_PartyChangeOption(int fd, struct map_session_data *sd) { struct party_data *p; + int i; - if(!sd->status.party_id) + if( !sd->status.party_id ) return; p = party_search(sd->status.party_id); - if (!p) return; + if( p == NULL ) + return; + + ARR_FIND( 0, MAX_PARTY, i, p->data[i].sd == sd ); + if( i == MAX_PARTY ) + return; //Shouldn't happen + + if( !p->party.member[i].leader ) + return; + //The client no longer can change the item-field, therefore it always //comes as zero. Here, resend the item data as it is. -// party_changeoption(sd, RFIFOW(fd,2), RFIFOW(fd,4)); +// party_changeoption(sd, RFIFOW(fd,2), RFIFOW(fd,4)); party_changeoption(sd, RFIFOW(fd,2), p->party.item); } |