ZC_PET_ACT

This commit is contained in:
Atemo 2024-05-26 04:54:50 +02:00
parent c0c8f2527c
commit 75f0634658
4 changed files with 18 additions and 17 deletions

View File

@ -8291,23 +8291,18 @@ void clif_send_petstatus( map_session_data& sd, pet_data& pd ){
}
/// Notification about a pet's emotion/talk (ZC_PET_ACT).
/// 01aa <id>.L <data>.L
/// Notification about a pet's emotion/talk.
/// 01aa <id>.L <data>.L (ZC_PET_ACT)
/// data:
/// @see CZ_PET_ACT.
void clif_pet_emotion(struct pet_data *pd,int param)
{
unsigned char buf[16];
void clif_pet_emotion( pet_data& pd, int32 param ){
PACKET_ZC_PET_ACT packet{};
nullpo_retv(pd);
packet.packetType = HEADER_ZC_PET_ACT;
packet.GID = pd.bl.id;
packet.data = param;
memset(buf,0,packet_len(0x1aa));
WBUFW(buf,0)=0x1aa;
WBUFL(buf,2)=pd->bl.id;
WBUFL(buf,6)=param;
clif_send(buf,packet_len(0x1aa),&pd->bl,AREA);
clif_send( &packet, sizeof( packet ), &pd.bl, AREA );
}
@ -10876,7 +10871,7 @@ void clif_parse_LoadEndAck(int fd,map_session_data *sd)
}
if(sd->pd && sd->pd->pet.intimate > 900)
clif_pet_emotion(sd->pd,(sd->pd->pet.class_ - 100)*100 + 50 + pet_hungry_val(sd->pd));
clif_pet_emotion( *sd->pd, (sd->pd->pet.class_ - 100)*100 + 50 + pet_hungry_val(sd->pd) );
if(hom_is_active(sd->hd))
hom_init_timers(sd->hd);
@ -14590,7 +14585,7 @@ void clif_parse_SelectEgg(int fd, map_session_data *sd){
void clif_parse_SendEmotion(int fd, map_session_data *sd)
{
if(sd->pd)
clif_pet_emotion(sd->pd,RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]));
clif_pet_emotion( *sd->pd, RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]) );
}

View File

@ -1104,7 +1104,7 @@ void clif_send_petstatus( map_session_data& sd, pet_data& pd );
void clif_send_petdata( map_session_data* sd, pet_data& pd, e_changestate_pet data_type, int32 value );
#define clif_pet_equip(sd, pd) clif_send_petdata(sd, pd, CHANGESTATEPET_ACCESSORY, (pd).vd.head_bottom)
#define clif_pet_equip_area(pd) clif_send_petdata(nullptr, pd, CHANGESTATEPET_ACCESSORY, (pd).vd.head_bottom)
void clif_pet_emotion(struct pet_data *pd,int param);
void clif_pet_emotion( pet_data& pd, int32 param );
void clif_pet_food( map_session_data& sd, int32 foodid, bool success );
void clif_pet_autofeed_status(map_session_data* sd, bool force);

View File

@ -254,7 +254,6 @@
parseable_packet(0x01a7,4,clif_parse_SelectEgg,2);
packet(0x01a8,4);
parseable_packet(0x01a9,6,clif_parse_SendEmotion,2);
packet(0x01aa,10);
packet(0x01ac,6);
packet(0x01ad,-1);
parseable_packet( HEADER_CZ_REQ_MAKINGARROW, sizeof( PACKET_CZ_REQ_MAKINGARROW ), clif_parse_SelectArrow, 0 );

View File

@ -1075,6 +1075,13 @@ struct PACKET_ZC_ACK_REQNAME_BYGID {
DEFINE_PACKET_HEADER(ZC_ACK_REQNAME_BYGID, 0x194);
#endif
struct PACKET_ZC_PET_ACT {
int16 packetType;
uint32 GID;
int32 data;
} __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_PET_ACT, 0x1aa);
// 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 )