ソースを参照

Converted ZC_ACK_REQ_ALLY_GUILD to struct (#8637)

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
AoShinHo 8 ヶ月 前
コミット
1425705a2a
5 ファイル変更28 行追加26 行削除
  1. 8 11
      src/map/clif.cpp
  2. 1 1
      src/map/clif.hpp
  3. 0 1
      src/map/clif_packetdb.hpp
  4. 13 13
      src/map/guild.cpp
  5. 6 0
      src/map/packets.hpp

+ 8 - 11
src/map/clif.cpp

@@ -9172,8 +9172,8 @@ void clif_guild_reqalliance(map_session_data& sd,uint32 account_id,const char *n
 }
 
 
-/// Notifies the client about the result of a alliance request (ZC_ACK_REQ_ALLY_GUILD).
-/// 0173 <answer>.B
+/// Notifies the client about the result of a alliance request.
+/// 0173 <answer>.B (ZC_ACK_REQ_ALLY_GUILD)
 /// answer:
 ///     0 = Already allied.
 ///     1 = You rejected the offer.
@@ -9181,17 +9181,14 @@ void clif_guild_reqalliance(map_session_data& sd,uint32 account_id,const char *n
 ///     3 = They have too any alliances.
 ///     4 = You have too many alliances.
 ///     5 = Alliances are disabled.
-void clif_guild_allianceack(map_session_data *sd,int flag)
-{
-	int fd;
+void clif_guild_allianceack(map_session_data& sd,uint8 flag){
 
-	nullpo_retv(sd);
+	PACKET_ZC_ACK_REQ_ALLY_GUILD p{};
 
-	fd=sd->fd;
-	WFIFOHEAD(fd,packet_len(0x173));
-	WFIFOW(fd,0)=0x173;
-	WFIFOL(fd,2)=flag;
-	WFIFOSET(fd,packet_len(0x173));
+	p.packetType = HEADER_ZC_ACK_REQ_ALLY_GUILD;
+	p.flag = flag;
+
+	clif_send(&p,sizeof(p),&sd.bl,SELF);
 }
 
 

+ 1 - 1
src/map/clif.hpp

@@ -1059,7 +1059,7 @@ void clif_guild_emblem_area(struct block_list* bl);
 void clif_guild_notice( map_session_data& sd );
 void clif_guild_message( const struct mmo_guild& g, uint32 account_id, const char* mes, size_t len );
 void clif_guild_reqalliance(map_session_data& sd,uint32 account_id,const char *name);
-void clif_guild_allianceack(map_session_data *sd,int flag);
+void clif_guild_allianceack(map_session_data& sd, uint8 flag);
 void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag);
 void clif_guild_oppositionack(map_session_data& sd,uint8 flag);
 void clif_guild_broken( map_session_data& sd, int flag );

+ 0 - 1
src/map/clif_packetdb.hpp

@@ -192,7 +192,6 @@
 	parseable_packet(0x016e,186,clif_parse_GuildChangeNotice,2,6,66);
 	parseable_packet(0x0170,14,clif_parse_GuildRequestAlliance,2,6,10);
 	parseable_packet(0x0172,10,clif_parse_GuildReplyAlliance,2,6);
-	packet(0x0173,3);
 	packet(0x0174,-1);
 	packet(0x0175,6);
 	packet(0x0176,106);

+ 13 - 13
src/map/guild.cpp

@@ -1862,7 +1862,7 @@ int guild_reqalliance(map_session_data *sd,map_session_data *tsd) {
 
 	// Check, is tsd guild master, if not - cancel alliance. [f0und3r]
 	if (battle_config.guild_alliance_onlygm && !tsd->state.gmaster_flag) {
-		clif_guild_allianceack(sd, 5);
+		clif_guild_allianceack(*sd, 5);
 		return 0;
 	}
 
@@ -1877,23 +1877,23 @@ int guild_reqalliance(map_session_data *sd,map_session_data *tsd) {
 		return 0;
 
 	if( guild_get_alliance_count(g->guild,0) >= battle_config.max_guild_alliance ) {
-		clif_guild_allianceack(sd,4);
+		clif_guild_allianceack(*sd,4);
 		return 0;
 	}
 	if( guild_get_alliance_count(tg->guild,0) >= battle_config.max_guild_alliance ) {
-		clif_guild_allianceack(sd,3);
+		clif_guild_allianceack(*sd,3);
 		return 0;
 	}
 
 	if( tsd->guild_alliance>0 ){
-		clif_guild_allianceack(sd,1);
+		clif_guild_allianceack(*sd,1);
 		return 0;
 	}
 
 	for (i = 0; i < MAX_GUILDALLIANCE; i++) { // check if already allied
 		if(	g->guild.alliance[i].guild_id==tsd->status.guild_id &&
 			g->guild.alliance[i].opposition==0){
-			clif_guild_allianceack(sd,0);
+			clif_guild_allianceack(*sd,0);
 			return 0;
 		}
 	}
@@ -1914,7 +1914,7 @@ int guild_reply_reqalliance(map_session_data *sd,uint32 account_id,int flag) {
 	nullpo_ret(sd);
 	tsd= map_id2sd( account_id );
 	if (!tsd) { //Character left? Cancel alliance.
-		clif_guild_allianceack(sd,3);
+		clif_guild_allianceack(*sd,3);
 		return 0;
 	}
 
@@ -1928,13 +1928,13 @@ int guild_reply_reqalliance(map_session_data *sd,uint32 account_id,int flag) {
 		auto &tg = tsd->guild;
 
 		if (!g || guild_get_alliance_count(g->guild,0) >= battle_config.max_guild_alliance) {
-			clif_guild_allianceack(sd,4);
-			clif_guild_allianceack(tsd,3);
+			clif_guild_allianceack(*sd,4);
+			clif_guild_allianceack(*tsd,3);
 			return 0;
 		}
 		if (!tg || guild_get_alliance_count(tg->guild,0) >= battle_config.max_guild_alliance) {
-			clif_guild_allianceack(sd,3);
-			clif_guild_allianceack(tsd,4);
+			clif_guild_allianceack(*sd,3);
+			clif_guild_allianceack(*tsd,4);
 			return 0;
 		}
 
@@ -1959,7 +1959,7 @@ int guild_reply_reqalliance(map_session_data *sd,uint32 account_id,int flag) {
 		sd->guild_alliance=0;
 		sd->guild_alliance_account=0;
 		if(tsd!=nullptr)
-			clif_guild_allianceack(tsd,3);
+			clif_guild_allianceack(*tsd,3);
 	}
 	return 0;
 }
@@ -2049,7 +2049,7 @@ int guild_allianceack(int guild_id1,int guild_id2,uint32 account_id1,uint32 acco
 	if (flag & 0x70) { // failure
 		for(i=0;i<2-(flag&1);i++)
 			if( sd[i]!=nullptr )
-				clif_guild_allianceack(sd[i],((flag>>4)==i+1)?3:4);
+				clif_guild_allianceack(*sd[i],((flag>>4)==i+1)?3:4);
 		return 0;
 	}
 
@@ -2079,7 +2079,7 @@ int guild_allianceack(int guild_id1,int guild_id2,uint32 account_id1,uint32 acco
 
 	if ((flag & 0x0f) == 0) { // alliance notification
 		if( sd[1]!=nullptr )
-			clif_guild_allianceack(sd[1],2);
+			clif_guild_allianceack(*sd[1],2);
 	} else if ((flag & 0x0f) == 1) { // enemy notification
 		if( sd[0]!=nullptr )
 			clif_guild_oppositionack(*sd[0],0);

+ 6 - 0
src/map/packets.hpp

@@ -760,6 +760,12 @@ struct PACKET_ZC_OPEN_EDITDLGSTR {
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(ZC_OPEN_EDITDLGSTR, 0x1d4)
 
+struct PACKET_ZC_ACK_REQ_ALLY_GUILD {
+	int16 packetType;
+	uint8 flag;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_REQ_ALLY_GUILD, 0x173)
+  
 struct PACKET_ZC_REQ_ALLY_GUILD {
 	int16 packetType;
 	uint32 inviterId;