|
@@ -8755,31 +8755,38 @@ void clif_guild_basicinfo( map_session_data& sd ){
|
|
|
}
|
|
|
|
|
|
|
|
|
-/// Guild alliance and opposition list (ZC_MYGUILD_BASIC_INFO).
|
|
|
-/// 014c <packet len>.W { <relation>.L <guild id>.L <guild name>.24B }*
|
|
|
-void clif_guild_allianceinfo(map_session_data *sd)
|
|
|
-{
|
|
|
- int fd,i,c;
|
|
|
+/// Guild alliance and opposition list
|
|
|
+/// 014c <packet len>.W { <relation>.L <guild id>.L <guild name>.24B }* (ZC_MYGUILD_BASIC_INFO)
|
|
|
+void clif_guild_allianceinfo(map_session_data& sd){
|
|
|
+ auto &g = sd.guild;
|
|
|
|
|
|
- nullpo_retv(sd);
|
|
|
- auto &g = sd->guild;
|
|
|
- if (!g)
|
|
|
+ if (g == nullptr){
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
- fd = sd->fd;
|
|
|
- WFIFOHEAD(fd, MAX_GUILDALLIANCE * 32 + 4);
|
|
|
- WFIFOW(fd, 0)=0x14c;
|
|
|
- for(i=c=0;i<MAX_GUILDALLIANCE;i++){
|
|
|
- struct guild_alliance *a=&g->guild.alliance[i];
|
|
|
- if(a->guild_id>0){
|
|
|
- WFIFOL(fd,c*32+4)=a->opposition;
|
|
|
- WFIFOL(fd,c*32+8)=a->guild_id;
|
|
|
- safestrncpy(WFIFOCP(fd,c*32+12),a->name,NAME_LENGTH);
|
|
|
- c++;
|
|
|
+ PACKET_ZC_MYGUILD_BASIC_INFO* p = reinterpret_cast<PACKET_ZC_MYGUILD_BASIC_INFO*>( packet_buffer );
|
|
|
+
|
|
|
+ p->PacketType = HEADER_ZC_MYGUILD_BASIC_INFO;
|
|
|
+ p->PacketLength = sizeof(*p);
|
|
|
+
|
|
|
+ for(size_t i=0, c = 0;i<MAX_GUILDALLIANCE;i++){
|
|
|
+ guild_alliance &a = g->guild.alliance[i];
|
|
|
+
|
|
|
+ if(a.guild_id<=0){
|
|
|
+ continue;
|
|
|
}
|
|
|
+
|
|
|
+ RELATED_GUILD_INFO& info = p->rgInfo[c];
|
|
|
+
|
|
|
+ info.relation = a.opposition;
|
|
|
+ info.GDID = a.guild_id;
|
|
|
+ safestrncpy(info.guildname,a.name,sizeof(info.guildname));
|
|
|
+
|
|
|
+ p->PacketLength += static_cast<decltype(p->PacketLength)>(sizeof(info));
|
|
|
+ c++;
|
|
|
}
|
|
|
- WFIFOW(fd, 2)=c*32+4;
|
|
|
- WFIFOSET(fd,WFIFOW(fd,2));
|
|
|
+
|
|
|
+ clif_send(p,p->PacketLength,&sd.bl,SELF);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -14090,7 +14097,7 @@ void clif_parse_GuildRequestInfo(int fd, map_session_data *sd)
|
|
|
{
|
|
|
case 0: // Basic Information Guild, hostile alliance information
|
|
|
clif_guild_basicinfo( *sd );
|
|
|
- clif_guild_allianceinfo(sd);
|
|
|
+ clif_guild_allianceinfo(*sd);
|
|
|
clif_guild_castle_list(*sd);
|
|
|
break;
|
|
|
case 1: // Members list, list job title
|