diff --git a/src/map/clif.cpp b/src/map/clif.cpp index ee1220898c..35716321c2 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -8691,8 +8691,8 @@ void clif_guild_send_onlineinfo(map_session_data *sd) } -/// Bitmask of enabled guild window tabs (ZC_ACK_GUILD_MENUINTERFACE). -/// 014e .L +/// Bitmask of enabled guild window tabs +/// 014e .L (ZC_ACK_GUILD_MENUINTERFACE) /// menu flag: /// 0x00 = Basic Info (always on) /// &0x01 = Member manager @@ -8701,17 +8701,18 @@ void clif_guild_send_onlineinfo(map_session_data *sd) /// &0x10 = Expulsion list /// &0x40 = Unknown (GMENUFLAG_ALLGUILDLIST) /// &0x80 = Notice -void clif_guild_masterormember(map_session_data *sd) -{ - int fd; +void clif_guild_masterormember(map_session_data& sd){ - nullpo_retv(sd); + PACKET_ZC_ACK_GUILD_MENUINTERFACE p{}; - fd=sd->fd; - WFIFOHEAD(fd,packet_len(0x14e)); - WFIFOW(fd,0) = 0x14e; - WFIFOL(fd,2) = (sd->state.gmaster_flag) ? 0xd7 : 0x57; - WFIFOSET(fd,packet_len(0x14e)); + p.packetType = HEADER_ZC_ACK_GUILD_MENUINTERFACE; + if(sd.state.gmaster_flag){ + p.menuFlag = 0xd7; + }else{ + p.menuFlag = 0x57; + } + + clif_send(&p,sizeof(p),&sd.bl,SELF); } @@ -14069,11 +14070,13 @@ void clif_parse_CreateGuild(int fd,map_session_data *sd){ } -/// Request for guild window interface permissions (CZ_REQ_GUILD_MENUINTERFACE). -/// 014d -void clif_parse_GuildCheckMaster(int fd, map_session_data *sd) -{ - clif_guild_masterormember(sd); +/// Request for guild window interface permissions +/// 014d (CZ_REQ_GUILD_MENUINTERFACE) +static void clif_parse_GuildCheckMaster(int fd, map_session_data *sd){ + if(sd == nullptr) + return; + + clif_guild_masterormember(*sd); } diff --git a/src/map/clif.hpp b/src/map/clif.hpp index 43048cf0d7..493adeeb0a 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -1041,7 +1041,7 @@ void clif_party_dead( map_session_data& sd ); // guild void clif_guild_created( map_session_data& sd, int flag ); void clif_guild_belonginfo( map_session_data& sd ); -void clif_guild_masterormember(map_session_data *sd); +void clif_guild_masterormember(map_session_data& sd); void clif_guild_basicinfo( map_session_data& sd ); void clif_guild_allianceinfo(map_session_data& sd); void clif_guild_memberlist( map_session_data& sd ); diff --git a/src/map/clif_packetdb.hpp b/src/map/clif_packetdb.hpp index 89b7985635..af5bdd1644 100644 --- a/src/map/clif_packetdb.hpp +++ b/src/map/clif_packetdb.hpp @@ -162,7 +162,6 @@ packet(0x014a,6); packet(0x014b,27); parseable_packet(0x014d,2,clif_parse_GuildCheckMaster,0); - packet(0x014e,6); parseable_packet(0x014f,6,clif_parse_GuildRequestInfo,2); packet(0x0150,110); parseable_packet(0x0151,6,clif_parse_GuildRequestEmblem,2); diff --git a/src/map/guild.cpp b/src/map/guild.cpp index 72bedaa3db..4b20ed4161 100644 --- a/src/map/guild.cpp +++ b/src/map/guild.cpp @@ -847,7 +847,7 @@ int guild_recv_info(const struct mmo_guild &sg) { sd->guild = g; sd->state.gmaster_flag = 1; clif_name_area(&sd->bl); // [LuzZza] - clif_guild_masterormember(sd); + clif_guild_masterormember(*sd); } } else { before = g->guild; diff --git a/src/map/packets.hpp b/src/map/packets.hpp index 01776f7985..ca4606959d 100644 --- a/src/map/packets.hpp +++ b/src/map/packets.hpp @@ -817,6 +817,12 @@ struct PACKET_ZC_CARTOFF { } __attribute__((packed)); DEFINE_PACKET_HEADER(ZC_CARTOFF, 0x12b) +struct PACKET_ZC_ACK_GUILD_MENUINTERFACE { + int16 packetType; + int menuFlag; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_ACK_GUILD_MENUINTERFACE, 0x014e) + struct PACKET_ZC_NOTIFY_POSITION_TO_GUILDM { int16 packetType; uint32 aid;