diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 678581d03..ce37e3816 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5301,20 +5301,22 @@ int clif_party_created(struct map_session_data *sd,int result) int clif_party_member_info(struct party_data *p, struct map_session_data *sd) { unsigned char buf[96]; + int i; if (!sd) { //Pick any party member (this call is used when changing item share rules) - int i; - for (i=0; i<MAX_PARTY && !p->data[i].sd; i++); - if (i >= MAX_PARTY) return 0; //Should never happen... - sd = p->data[i].sd; + ARR_FIND( 0, MAX_PARTY, i, p->data[i].sd != 0 ); + } else { + ARR_FIND( 0, MAX_PARTY, i, p->data[i].sd == sd ); } + if (i >= MAX_PARTY) return 0; //Should never happen... + sd = p->data[i].sd; WBUFW(buf, 0) = 0x1e9; WBUFL(buf, 2) = sd->status.account_id; - WBUFL(buf, 6) = 0; + WBUFL(buf, 6) = (p->party.member[i].leader)?1:0; WBUFW(buf,10) = sd->bl.x; WBUFW(buf,12) = sd->bl.y; - WBUFB(buf,14) = 0; //Unconfirmed byte, could be online/offline. + WBUFB(buf,14) = (p->party.member[i].online)?1:0; memcpy(WBUFP(buf,15), p->party.name, NAME_LENGTH); memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH); mapindex_getmapname_ext(mapindex_id2name(sd->mapindex), (char*)WBUFP(buf,63)); |