/// Use for ? /// 0905 .W (ZC_STORE_ITEMLIST_EQUIP) /// 0976 .W .24B (ZC_STORE_ITEMLIST_EQUIP_V2) /// 0996 .W .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 .W (ZC_STORE_ITEMLIST_NORMAL) /// 0975 .W .24B (ZC_STORE_ITEMLIST_NORMAL_V2) /// 0995 .W .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 .W (ZC_CART_ITEMLIST_EQUIP) /// 0994 .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 .W (ZC_CART_ITEMLIST_NORMAL) /// 0993 .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 .W (ZC_INVENTORY_ITEMLIST_EQUIP) /// 0992 .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 .W (ZC_INVENTORY_ITEMLIST_NORMAL) /// 0991 .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 .W .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 .W void clif_notifyclanchat() { //CZ ? } /// Clan chat message (CZ_CLANINFO) /// 098a .W .L .24B .24B .16B .B .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 .W .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 .B .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)); }