From 9761fdf4da2b3800b3374c3728b5417ea6fc1c54 Mon Sep 17 00:00:00 2001 From: AoShinHo <126742159+AoShinRO@users.noreply.github.com> Date: Sat, 14 Sep 2024 12:44:30 -0300 Subject: [PATCH] Converted ZC_DELETE_RELATED_GUILD to struct (#8638) Co-authored-by: Daegaladh Co-authored-by: Lemongrass3110 --- src/map/clif.cpp | 20 ++++++++------------ src/map/clif.hpp | 2 +- src/map/clif_packetdb.hpp | 1 - src/map/guild.cpp | 4 ++-- src/map/packets.hpp | 7 +++++++ 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 5484dd815b..4c55475130 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -9192,25 +9192,21 @@ void clif_guild_allianceack(map_session_data& sd,uint8 flag){ } -/// Notifies the client that a alliance or opposition has been removed (ZC_DELETE_RELATED_GUILD). -/// 0184 .L .L +/// Notifies the client that a alliance or opposition has been removed. +/// 0184 .L .L (ZC_DELETE_RELATED_GUILD) /// relation: /// 0 = Ally /// 1 = Enemy -void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag) +void clif_guild_delalliance(map_session_data& sd,uint32 guild_id,uint32 flag) { - nullpo_retv(sd); - int fd = sd->fd; + PACKET_ZC_DELETE_RELATED_GUILD p{}; - if ( !session_isActive(fd) ) - return; + p.packetType = HEADER_ZC_DELETE_RELATED_GUILD; + p.allyID = guild_id; + p.flag = flag; - WFIFOHEAD(fd,packet_len(0x184)); - WFIFOW(fd,0)=0x184; - WFIFOL(fd,2)=guild_id; - WFIFOL(fd,6)=flag; - WFIFOSET(fd,packet_len(0x184)); + clif_send(&p,sizeof(p),&sd.bl,SELF); } diff --git a/src/map/clif.hpp b/src/map/clif.hpp index e3bbc97486..8d57d4d9e0 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -1060,7 +1060,7 @@ 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, uint8 flag); -void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag); +void clif_guild_delalliance(map_session_data& sd,uint32 guild_id,uint32 flag); void clif_guild_oppositionack(map_session_data& sd,uint8 flag); void clif_guild_broken( map_session_data& sd, int flag ); void clif_guild_xy( map_session_data& sd ); diff --git a/src/map/clif_packetdb.hpp b/src/map/clif_packetdb.hpp index dfe7a43a9a..b6aeb08a06 100644 --- a/src/map/clif_packetdb.hpp +++ b/src/map/clif_packetdb.hpp @@ -205,7 +205,6 @@ parseable_packet(0x0180,6,clif_parse_GuildOpposition,2); packet(0x0182,106); parseable_packet(0x0183,10,clif_parse_GuildDelAlliance,2,6); - packet(0x0184,10); packet(0x0185,34); packet(0x0187,6); parseable_packet(0x018a,4,clif_parse_QuitGame,2); diff --git a/src/map/guild.cpp b/src/map/guild.cpp index a2685e630f..097eec8841 100644 --- a/src/map/guild.cpp +++ b/src/map/guild.cpp @@ -2073,7 +2073,7 @@ int guild_allianceack(int guild_id1,int guild_id2,uint32 account_id1,uint32 acco g[i]->alliance[j].guild_id = 0; } if (sd[i] != nullptr) // notify players - clif_guild_delalliance(sd[i],guild_id[1-i],(flag&1)); + clif_guild_delalliance(*sd[i],guild_id[1-i],(flag&1)); } } @@ -2112,7 +2112,7 @@ int guild_broken_sub(struct mmo_guild &g, int guild_id) { if (g.alliance[i].guild_id == guild_id) { for (int j = 0; j < g.max_member; j++) { if (g.member[j].sd) - clif_guild_delalliance(g.member[j].sd, guild_id, g.alliance[i].opposition); + clif_guild_delalliance(*g.member[j].sd, guild_id, g.alliance[i].opposition); } intif_guild_alliance(g.guild_id, guild_id, 0, 0, g.alliance[i].opposition | 8); g.alliance[i].guild_id = 0; diff --git a/src/map/packets.hpp b/src/map/packets.hpp index 5b77a1931a..d3ecc667c3 100644 --- a/src/map/packets.hpp +++ b/src/map/packets.hpp @@ -766,6 +766,13 @@ struct PACKET_ZC_ACK_REQ_ALLY_GUILD { } __attribute__((packed)); DEFINE_PACKET_HEADER(ZC_ACK_REQ_ALLY_GUILD, 0x173) +struct PACKET_ZC_DELETE_RELATED_GUILD { + int16 packetType; + uint32 allyID; + uint32 flag; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_DELETE_RELATED_GUILD, 0x184) + struct PACKET_ZC_REQ_ALLY_GUILD { int16 packetType; uint32 inviterId;