ZC_ACK_REQNAME_BYGID

This commit is contained in:
Atemo 2024-05-26 00:25:33 +02:00
parent 6edc930f4a
commit 11d84fb634
5 changed files with 38 additions and 28 deletions

View File

@ -7004,25 +7004,20 @@ void clif_wis_end( map_session_data& sd, e_ack_whisper result ){
}
/// Returns character name requested by char_id (ZC_ACK_REQNAME_BYGID).
/// 0194 <char id>.L <name>.24B
/// 0af7 <flag>.W <char id>.L <name>.24B
void clif_solved_charname(int fd, int charid, const char* name)
{
/// Returns character name requested by char_id.
/// 0194 <char id>.L <name>.24B (ZC_ACK_REQNAME_BYGID)
/// 0af7 <flag>.W <char id>.L <name>.24B (ZC_ACK_REQNAME_BYGID)
void clif_solved_charname( map_session_data& sd, uint32 charid, const char* name ){
PACKET_ZC_ACK_REQNAME_BYGID packet{};
packet.packetType = HEADER_ZC_ACK_REQNAME_BYGID;
#if PACKETVER >= 20180221
WFIFOHEAD(fd,packet_len(0xaf7));
WFIFOW(fd,0) = 0xaf7;
WFIFOW(fd,2) = name[0] ? 3 : 2;
WFIFOL(fd,4) = charid;
safestrncpy(WFIFOCP(fd, 8), name, NAME_LENGTH);
WFIFOSET(fd,packet_len(0x0af7));
#else
WFIFOHEAD(fd,packet_len(0x194));
WFIFOW(fd,0)=0x194;
WFIFOL(fd,2)=charid;
safestrncpy(WFIFOCP(fd,6), name, NAME_LENGTH);
WFIFOSET(fd,packet_len(0x194));
packet.flag = name[0] ? 3 : 2;
#endif
packet.CID = charid;
safestrncpy( packet.name, name, NAME_LENGTH );
clif_send( &packet, sizeof( packet ), &sd.bl, SELF );
}
@ -8175,7 +8170,7 @@ void clif_movetoattack( map_session_data& sd, block_list& bl ){
void clif_produceeffect(map_session_data* sd,int flag, t_itemid nameid){
nullpo_retv( sd );
clif_solved_charname( sd->fd, sd->status.char_id, sd->status.name );
clif_solved_charname( *sd, sd->status.char_id, sd->status.name );
struct PACKET_ZC_ACK_REQMAKINGITEM p;

View File

@ -952,7 +952,7 @@ void clif_efst_status_change_sub(struct block_list *tbl, struct block_list *bl,
void clif_wis_message(map_session_data* sd, const char* nick, const char* mes, size_t mes_len, int gmlvl);
void clif_wis_end( map_session_data& sd, e_ack_whisper result );
void clif_solved_charname(int fd, int charid, const char* name);
void clif_solved_charname( map_session_data& sd, uint32 charid, const char* name );
void clif_name( struct block_list* src, struct block_list *bl, send_target target );
#define clif_name_self(bl) clif_name( (bl), (bl), SELF )
#define clif_name_area(bl) clif_name( (bl), (bl), AREA )

View File

@ -238,7 +238,6 @@
packet( HEADER_ZC_TALKBOX_CHATCONTENTS, sizeof( struct PACKET_ZC_TALKBOX_CHATCONTENTS ) );
packet(0x0192,24);
parseable_packet(0x0193,6,clif_parse_SolveCharName,2);
packet(0x0194,30);
packet( HEADER_ZC_ACK_REQNAMEALL, sizeof( struct PACKET_ZC_ACK_REQNAMEALL ) );
packet(0x0196,9);
parseable_packet(0x0197,4,clif_parse_ResetChar,2);
@ -2228,7 +2227,6 @@
// 2018-02-21aRagexeRE or 2018-02-21bRagexeRE
#if PACKETVER >= 20180221
packet(0x0206,35); // ZC_FRIENDS_STATE
packet(0x0af7,32);
#endif
// 2018-03-07bRagexeRE

View File

@ -1939,8 +1939,8 @@ void map_addnickdb(int charid, const char* nick)
req = p->requests;
p->requests = req->next;
sd = map_charid2sd(req->charid);
if( sd )
clif_solved_charname(sd->fd, charid, p->nick);
if( sd != nullptr )
clif_solved_charname( *sd, charid, p->nick );
aFree(req);
}
}
@ -1961,8 +1961,8 @@ void map_delnickdb(int charid, const char* name)
req = p->requests;
p->requests = req->next;
sd = map_charid2sd(req->charid);
if( sd )
clif_solved_charname(sd->fd, charid, name);
if( sd != nullptr )
clif_solved_charname( *sd, charid, name );
aFree(req);
}
aFree(p);
@ -1980,16 +1980,16 @@ void map_reqnickdb(map_session_data * sd, int charid)
nullpo_retv(sd);
tsd = map_charid2sd(charid);
if( tsd )
if( tsd != nullptr )
{
clif_solved_charname(sd->fd, charid, tsd->status.name);
clif_solved_charname( *sd, charid, tsd->status.name );
return;
}
p = (struct charid2nick*)idb_ensure(nick_db, charid, create_charid2nick);
if( *p->nick )
{
clif_solved_charname(sd->fd, charid, p->nick);
clif_solved_charname( *sd, charid, p->nick );
return;
}
// not in cache, request it

View File

@ -1058,6 +1058,23 @@ struct PACKET_ZC_MONSTER_INFO {
} __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_MONSTER_INFO, 0x18c);
#if PACKETVER >= 20180221
struct PACKET_ZC_ACK_REQNAME_BYGID {
int16 packetType;
uint16 flag;
uint32 CID;
char name[NAME_LENGTH];
} __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_ACK_REQNAME_BYGID, 0xaf7);
#else
struct PACKET_ZC_ACK_REQNAME_BYGID {
int16 packetType;
uint32 CID;
char name[NAME_LENGTH];
} __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_ACK_REQNAME_BYGID, 0x194);
#endif
// NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
#pragma pack( pop )