/// Use for ?
/// 0905 <packet len>.W (ZC_STORE_ITEMLIST_EQUIP)
/// 0976 <packet len>.W <store name>.24B (ZC_STORE_ITEMLIST_EQUIP_V2)
/// 0996 <packet len>.W <store name>.24B (ZC_STORE_ITEMLIST_EQUIP_V5)
void clif_storeitemlistequip (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120221
header=0x905;
#elif PACKETVER < 20120925
header=0x976;
#else
header=0x996;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
#if PACKETVER >= 20120221
safestrncpy((char*)WFIFOP(fd,4), sd->status.name, NAME_LENGHT); //[0x18](24) StoreName
#endif
WFIFOSET(fd,packet_len(header));
}
/// Use for ?
/// 0904 <packet len>.W (ZC_STORE_ITEMLIST_NORMAL)
/// 0975 <packet len>.W <store name>.24B (ZC_STORE_ITEMLIST_NORMAL_V2)
/// 0995 <packet len>.W <store name>.24B (ZC_STORE_ITEMLIST_NORMAL_V5)
void clif_storeitemlistnormal (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120221
header=0x904;
#elif PACKETVER < 20120925
header=0x975;
#else
header=0x995;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
#if PACKETVER >= 20120221
safestrncpy((char*)WFIFOP(fd,4), sd->status.name, NAME_LENGHT); //[0x18](24) StoreName
#endif
WFIFOSET(fd,packet_len(header));
}
/// Use for ?
/// 0903 <packet len>.W (ZC_CART_ITEMLIST_EQUIP)
/// 0994 <packet len>.W (ZC_CART_ITEMLIST_EQUIP_V5)
void clif_cartitemlistequip (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120925
header=0x903;
#else
header=0x996;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
WFIFOSET(fd,packet_len(header));
}
/// Use for ?
/// 0902 <packet len>.W (ZC_CART_ITEMLIST_NORMAL)
/// 0993 <packet len>.W (ZC_CART_ITEMLIST_NORMAL_V5)
void clif_cartitemlistnormal (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120925
header=0x902;
#else
header=0x993;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
WFIFOSET(fd,packet_len(header));
}
/// Use for ?
/// 0901 <packet len>.W (ZC_INVENTORY_ITEMLIST_EQUIP)
/// 0992 <packet len>.W (ZC_INVENTORY_ITEMLIST_EQUIP_V5)
void clif_inventoryitemlistequip (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120925
header=0x901;
#else
header=0x992;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
WFIFOSET(fd,packet_len(header));
}
/// Use for ?
/// 0900 <packet len>.W (ZC_INVENTORY_ITEMLIST_NORMAL)
/// 0991 <packet len>.W (ZC_INVENTORY_ITEMLIST_NORMAL_V5)
void clif_inventoryitemlistnormal (struct map_session_data* sd){
// start use of this packet : 20111122
int header,fd;
nullpo_retv(sd);
fd = sd->fd;
#if PACKETVER < 20120925
header=0x900;
#else
header=0x991;
#endif
WFIFOHEAD(fd,packet_len(header));
WFIFOW(fd,0)=header;
WFIFOW(fd,2)=packet_len(header);
WFIFOSET(fd,packet_len(header));
}
/// Clan chat notify (ZC_NOTIFY_CLAN_CHAT)
/// 098e <packet len>.W <char name>.24B
void clif_notifyclanchat(struct map_session_data* sd)
{
int fd;
nullpo_retv(sd);
fd = sd->fd;
WFIFOHEAD(fd,packet_len(0x98e));
WFIFOW(fd,0)=0x98e;
WFIFOW(fd,2)=packet_len(0x98e);
safestrncpy((char*)WFIFOP(fd,4), sd->status.name, NAME_LENGHT); //[0x18](24) StoreName
WFIFOSET(fd,packet_len(0x98e));
}
/// Clan chat message (CZ_CLAN_CHAT)
/// 098d <packet len>.W
void clif_notifyclanchat()
{
//CZ ?
}
/// Clan chat message (CZ_CLANINFO)
/// 098a <packet len>.W <emblem num>.L <clan name>.24B <master name>.24B <manage map>.16B <num allyclan>.B <num hostileclan>.B
void clif_claninfo(struct map_session_data* sd)
{
int fd;
struct clan *c; // Struct must be create
nullpo_retv(sd);
fd = sd->fd;
if( (c = sd->clan) == NULL )
return;
WFIFOHEAD(fd,packet_len(0x98a));
WFIFOW(fd,0)=0x98a;
WFIFOW(fd,2)=packet_len(0x98a);
WFIFOL(fd,4)=c->emblem_id; // EmblemNum
memcpy(WFIFOP(fd,8),c->name, NAME_LENGTH); // Clan name
memcpy(WFIFOP(fd,32),c->master, NAME_LENGTH); // Master name
// Manage map (???) (fd,56)
// Num ally clan (Id of ally clan) (fd,72)
// Num hostile clan (Id of hostile clan) (fd,72)
WFIFOSET(fd,packet_len(0x98a));
}
/// Clan leave (ZC_ACK_CLAN_LEAVE)
/// 0989
void clif_clanleave(struct map_session_data* sd)
{
int fd;
nullpo_retv(sd);
fd = sd->fd;
WFIFOHEAD(fd,packet_len(0x989));
WFIFOW(fd,0)=0x989;
WFIFOSET(fd,packet_len(0x989));
}
/// Clan leave (ZC_NOTIFY_CLAN_CONNECTINFO)
/// 0988 <num connect>.W <num total>.W
void clif_clanconnectinfo(struct map_session_data* sd)
{
int fd;
struct guild *g;
nullpo_retv(sd);
fd = sd->fd;
if( (c = sd->clan) == NULL )
return;
WFIFOHEAD(fd,packet_len(0x989));
WFIFOW(fd,0)=0x988;
WFIFOW(fd,2)=c->connect_member; //short NumConnect
WFIFOW(fd,4)=c->max_member; //short NumTotal
WFIFOSET(fd,packet_len(0x989));
}
/// Clan leave (ZC_FATIGUE_CHN)
/// 0982 <char level>.B <total play time>.L
void clif_fatiguechn(struct map_session_data* sd)
{
int fd;
nullpo_retv(sd);
fd = sd->fd;
WFIFOHEAD(fd,packet_len(0x982));
WFIFOW(fd,0)=0x982;
WFIFOB(fd,2)= //char Level
WFIFOL(fd,3)= //long TotalPlayTime
WFIFOSET(fd,packet_len(0x982));
}