* Add correct reply when player invited to party isn't found.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14970 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
flaviojs 2011-10-10 17:25:15 +00:00
parent 7b1ca6d8b3
commit c5832ca11e
4 changed files with 29 additions and 17 deletions

View File

@ -1,5 +1,7 @@
Date Added Date Added
2011/10/10
* Add correct reply when player invited to party isn't found. [FlavioJS]
2011/10/09 2011/10/09
* Rework some party code. [FlavioJS] * Rework some party code. [FlavioJS]
- add leader argument to party_fill_member - add leader argument to party_fill_member

View File

@ -5903,38 +5903,48 @@ void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd)
WFIFOSET(fd,packet_len(cmd)); WFIFOSET(fd,packet_len(cmd));
} }
/*==========================================
* Party invitation result. /// Party invite result.
* R 00fd <nick>.24S <flag>.B /// R 00fd <nick>.24S <result>.B
* R 02c5 <nick>.24S <flag>.L /// R 02c5 <nick>.24S <result>.L
* Flag values are: /// result=0 : char is already in a party -> MsgStringTable[80]
* 0 -> char is already in a party /// result=1 : party invite was rejected -> MsgStringTable[81]
* 1 -> party invite was rejected /// result=2 : party invite was accepted -> MsgStringTable[82]
* 2 -> party invite was accepted /// result=3 : party is full -> MsgStringTable[83]
* 3 -> party is full /// result=4 : char of the same account already joined the party -> MsgStringTable[608]
* 4 -> char of the same account already joined the party /// result=5 : char blocked party invite -> MsgStringTable[1324] (since 20070904)
*------------------------------------------*/ /// result=7 : char is not online or doesn't exist -> MsgStringTable[71] (since 20070904)
void clif_party_inviteack(struct map_session_data* sd, const char* nick, int flag) /// result=8 : (%s) TODO instance related? -> MsgStringTable[1388] (since 20080527)
/// return=9 : TODO map prohibits party joining? -> MsgStringTable[1871] (since 20110205)
void clif_party_inviteack(struct map_session_data* sd, const char* nick, int result)
{ {
int fd; int fd;
nullpo_retv(sd); nullpo_retv(sd);
fd=sd->fd; fd=sd->fd;
#if PACKETVER < 20070904
if( result == 7 ) {
clif_displaymessage(fd, msg_txt(3));
return;
}
#endif
#if PACKETVER < 20070821 #if PACKETVER < 20070821
WFIFOHEAD(fd,packet_len(0xfd)); WFIFOHEAD(fd,packet_len(0xfd));
WFIFOW(fd,0) = 0xfd; WFIFOW(fd,0) = 0xfd;
safestrncpy((char*)WFIFOP(fd,2),nick,NAME_LENGTH); safestrncpy((char*)WFIFOP(fd,2),nick,NAME_LENGTH);
WFIFOB(fd,26) = flag; WFIFOB(fd,26) = result;
WFIFOSET(fd,packet_len(0xfd)); WFIFOSET(fd,packet_len(0xfd));
#else #else
WFIFOHEAD(fd,packet_len(0x2c5)); WFIFOHEAD(fd,packet_len(0x2c5));
WFIFOW(fd,0) = 0x2c5; WFIFOW(fd,0) = 0x2c5;
safestrncpy((char*)WFIFOP(fd,2),nick,NAME_LENGTH); safestrncpy((char*)WFIFOP(fd,2),nick,NAME_LENGTH);
WFIFOL(fd,26) = flag; WFIFOL(fd,26) = result;
WFIFOSET(fd,packet_len(0x2c5)); WFIFOSET(fd,packet_len(0x2c5));
#endif #endif
} }
/*========================================== /*==========================================
* *
* flag & 0x001=exp変更ミス * flag & 0x001=exp変更ミス

View File

@ -406,7 +406,7 @@ 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);
int clif_party_info(struct party_data *p, struct map_session_data *sd); int clif_party_info(struct party_data *p, struct map_session_data *sd);
void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd); void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd);
void clif_party_inviteack(struct map_session_data* sd, const char* nick, int flag); void clif_party_inviteack(struct map_session_data* sd, const char* nick, int result);
int clif_party_option(struct party_data *p,struct map_session_data *sd,int flag); int clif_party_option(struct party_data *p,struct map_session_data *sd,int flag);
int clif_party_withdraw(struct party_data* p, struct map_session_data* sd, int account_id, const char* name, int flag); int clif_party_withdraw(struct party_data* p, struct map_session_data* sd, int account_id, const char* name, int flag);
int clif_party_message(struct party_data* p, int account_id, const char* mes, int len); int clif_party_message(struct party_data* p, int account_id, const char* mes, int len);

View File

@ -338,8 +338,8 @@ int party_invite(struct map_session_data *sd,struct map_session_data *tsd)
nullpo_ret(sd); nullpo_ret(sd);
if( ( p = party_search(sd->status.party_id) ) == NULL ) if( ( p = party_search(sd->status.party_id) ) == NULL )
return 0; return 0;
if( tsd == NULL) { //TODO: Find the correct reply packet. if( tsd == NULL) {
clif_displaymessage(sd->fd, msg_txt(3)); clif_party_inviteack(sd, "", 7);
return 0; return 0;
} }