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 --- src/map/clif.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/map/clif.c') 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-70-g09d2