Fixed invited party members not displaying correctly (bugreport:1199)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12394 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ultramage 2008-03-18 22:29:04 +00:00
parent 96a72d9d84
commit b2734e601e
3 changed files with 14 additions and 9 deletions

View File

@ -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. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/03/18 2008/03/18
* Fixed invited party members not displaying correctly (bugreport:1199)
* Fixed OnPCLoginEvent not working correctly (bugreport:1182) [ultramage] * Fixed OnPCLoginEvent not working correctly (bugreport:1182) [ultramage]
* Added missing WorkingDirectory value to vcproj-7.1, vcproj-8 projects. * Added missing WorkingDirectory value to vcproj-7.1, vcproj-8 projects.
Now you can flawlessly run your compiled server with RUN button in Now you can flawlessly run your compiled server with RUN button in

View File

@ -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) int clif_party_member_info(struct party_data *p, struct map_session_data *sd)
{ {
unsigned char buf[96]; unsigned char buf[96];
int i;
if (!sd) { //Pick any party member (this call is used when changing item share rules) if (!sd) { //Pick any party member (this call is used when changing item share rules)
int i; ARR_FIND( 0, MAX_PARTY, i, p->data[i].sd != 0 );
for (i=0; i<MAX_PARTY && !p->data[i].sd; i++); } else {
if (i >= MAX_PARTY) return 0; //Should never happen... ARR_FIND( 0, MAX_PARTY, i, p->data[i].sd == sd );
sd = p->data[i].sd;
} }
if (i >= MAX_PARTY) return 0; //Should never happen...
sd = p->data[i].sd;
WBUFW(buf, 0) = 0x1e9; WBUFW(buf, 0) = 0x1e9;
WBUFL(buf, 2) = sd->status.account_id; 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,10) = sd->bl.x;
WBUFW(buf,12) = sd->bl.y; 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,15), p->party.name, NAME_LENGTH);
memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH); memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH);
mapindex_getmapname_ext(mapindex_id2name(sd->mapindex), (char*)WBUFP(buf,63)); mapindex_getmapname_ext(mapindex_id2name(sd->mapindex), (char*)WBUFP(buf,63));

View File

@ -381,8 +381,6 @@ int party_member_added(int party_id,int account_id,int char_id, int flag)
} }
sd2 = map_id2sd(sd->party_invite_account); sd2 = map_id2sd(sd->party_invite_account);
if( sd2 != NULL )
clif_party_inviteack(sd2,sd->status.name,flag?3:2);
sd->party_invite = 0; sd->party_invite = 0;
sd->party_invite_account = 0; sd->party_invite_account = 0;
@ -406,9 +404,13 @@ int party_member_added(int party_id,int account_id,int char_id, int flag)
} }
party_check_conflict(sd); party_check_conflict(sd);
clif_party_member_info(p,sd);
clif_party_option(p,sd,0x100); clif_party_option(p,sd,0x100);
clif_party_info(p,sd); clif_party_info(p,sd);
clif_party_member_info(p,sd);
if( sd2 != NULL )
clif_party_inviteack(sd2,sd->status.name,flag?3:2);
for( i = 0; i < ARRAYLENGTH(p->data); ++i ) for( i = 0; i < ARRAYLENGTH(p->data); ++i )
{// hp of the other party members {// hp of the other party members
sd2 = p->data[i].sd; sd2 = p->data[i].sd;