summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-03-08 23:03:06 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-03-08 23:03:06 +0000
commit133d6e1686771a4acda5dc421499199528196e0c (patch)
tree24e530c7a9256f1845685c1799b14cd6c03d4cc5 /src/map/clif.c
parenta0046ed8734160aaaf8ce8afbebee81eb537cbbf (diff)
downloadhercules-133d6e1686771a4acda5dc421499199528196e0c.tar.gz
hercules-133d6e1686771a4acda5dc421499199528196e0c.tar.bz2
hercules-133d6e1686771a4acda5dc421499199528196e0c.tar.xz
hercules-133d6e1686771a4acda5dc421499199528196e0c.zip
Corrected a problem where a party invite acknowledgement would not be sent (bugreport:1091).
There is still the unresolved issue where newly added party members will not display their party correctly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12328 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index c4b0134a9..551155ea3 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -5411,19 +5411,17 @@ int clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd)
* 3 -> party is full
* 4 -> char of the same account already joined the party
*------------------------------------------*/
-int 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 flag)
{
int fd;
-
- nullpo_retr(0, sd);
-
+ nullpo_retv(sd);
fd=sd->fd;
+
WFIFOHEAD(fd,packet_len(0xfd));
- WFIFOW(fd,0)=0xfd;
- memcpy(WFIFOP(fd,2),nick,NAME_LENGTH);
- WFIFOB(fd,26)=flag;
+ WFIFOW(fd,0) = 0xfd;
+ safestrncpy((char*)WFIFOP(fd,2),nick,NAME_LENGTH);
+ WFIFOB(fd,26) = flag;
WFIFOSET(fd,packet_len(0xfd));
- return 0;
}
/*==========================================
@@ -9818,27 +9816,35 @@ void clif_parse_PartyInvite2(int fd, struct map_session_data *sd)
party_invite(sd, t_sd);
}
+
/*==========================================
- * パーティ勧誘返答
+ * Party invitation reply
+ * S 00ff <account ID>.L <flag>.L
+ * S 02c7 <account ID>.L <flag>.B
+ * flag: 0-reject, 1-accept
*------------------------------------------*/
void clif_parse_ReplyPartyInvite(int fd,struct map_session_data *sd)
{
- if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 5){
- party_reply_invite(sd,RFIFOL(fd,2),RFIFOL(fd,6));
- } else {
+ if( battle_config.basic_skill_check && pc_checkskill(sd,NV_BASIC) < 5 )
+ {
party_reply_invite(sd,RFIFOL(fd,2),-1);
clif_skill_fail(sd,1,0,4);
+ return;
}
+
+ party_reply_invite(sd,RFIFOL(fd,2),RFIFOL(fd,6));
}
void clif_parse_ReplyPartyInvite2(int fd,struct map_session_data *sd)
{
- if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 5){
- party_reply_invite(sd,RFIFOL(fd,2),RFIFOB(fd,6));
- } else {
+ if( battle_config.basic_skill_check && pc_checkskill(sd,NV_BASIC) < 5 )
+ {
party_reply_invite(sd,RFIFOL(fd,2),-1);
clif_skill_fail(sd,1,0,4);
+ return;
}
+
+ party_reply_invite(sd,RFIFOL(fd,2),RFIFOB(fd,6));
}
/*==========================================