From 5a267de7af95452c9babb3b48f1adc7391c9f133 Mon Sep 17 00:00:00 2001 From: ultramage Date: Mon, 10 Mar 2008 20:06:39 +0000 Subject: Added missing check to only allow the leader of a party to modify its exp share settings (bugreport:12) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12337 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ 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); } -- cgit v1.2.3-60-g2f50