Synced packs_struct.hpp with Hercules (#6495)
Credits to the respective authors
This commit is contained in:
parent
4e26c1bc55
commit
bf3bd7fb03
@ -2771,7 +2771,7 @@ void clif_additem( struct map_session_data *sd, int n, int amount, unsigned char
|
||||
return;
|
||||
}
|
||||
|
||||
struct packet_additem p;
|
||||
struct PACKET_ZC_ITEM_PICKUP_ACK p;
|
||||
|
||||
if( fail ){
|
||||
p = {};
|
||||
@ -2808,7 +2808,7 @@ void clif_additem( struct map_session_data *sd, int n, int amount, unsigned char
|
||||
#endif
|
||||
}
|
||||
|
||||
p.PacketType = additemType;
|
||||
p.PacketType = HEADER_ZC_ITEM_PICKUP_ACK;
|
||||
p.Index = client_index( n );
|
||||
p.count = amount;
|
||||
p.result = fail;
|
||||
@ -4690,7 +4690,7 @@ void clif_tradeadditem( struct map_session_data* sd, struct map_session_data* ts
|
||||
clif_add_random_options( p.option_data, &sd->inventory.u.items_inventory[index] );
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
p.location = pc_equippoint_sub( sd, sd->inventory_data[index] );
|
||||
p.viewSprite = sd->inventory_data[index]->look;
|
||||
p.look = sd->inventory_data[index]->look;
|
||||
p.enchantgrade = sd->inventory.u.items_inventory[index].enchantgrade;
|
||||
#endif
|
||||
#endif
|
||||
@ -4698,7 +4698,7 @@ void clif_tradeadditem( struct map_session_data* sd, struct map_session_data* ts
|
||||
p = {};
|
||||
}
|
||||
|
||||
p.packetType = tradeaddType;
|
||||
p.packetType = HEADER_ZC_ADD_EXCHANGE_ITEM;
|
||||
p.amount = amount;
|
||||
|
||||
clif_send( &p, sizeof( p ), &tsd->bl, SELF );
|
||||
@ -4822,7 +4822,7 @@ void clif_storageitemadded( struct map_session_data* sd, struct item* i, int ind
|
||||
|
||||
struct PACKET_ZC_ADD_ITEM_TO_STORE p;
|
||||
|
||||
p.packetType = storageaddType; // Storage item added
|
||||
p.packetType = HEADER_ZC_ADD_ITEM_TO_STORE; // Storage item added
|
||||
p.index = client_storage_index( index ); // index
|
||||
p.amount = amount; // amount
|
||||
p.itemId = client_nameid( i->nameid ); // id
|
||||
@ -7133,7 +7133,7 @@ void clif_item_repair_list( struct map_session_data *sd,struct map_session_data
|
||||
return;
|
||||
}
|
||||
|
||||
int len = MAX_INVENTORY * sizeof( struct PACKET_ZC_REPAIRITEMLIST_sub ) + sizeof( struct PACKET_ZC_REPAIRITEMLIST );
|
||||
int len = MAX_INVENTORY * sizeof( struct REPAIRITEM_INFO ) + sizeof( struct PACKET_ZC_REPAIRITEMLIST );
|
||||
|
||||
// Preallocate the maximum size
|
||||
WFIFOHEAD( fd, len );
|
||||
@ -7153,10 +7153,10 @@ void clif_item_repair_list( struct map_session_data *sd,struct map_session_data
|
||||
}
|
||||
|
||||
if( c > 0 ){
|
||||
p->packetType = 0x1fc;
|
||||
p->packetType = HEADER_ZC_REPAIRITEMLIST;
|
||||
|
||||
// Recalculate real length
|
||||
len = c * sizeof( struct PACKET_ZC_REPAIRITEMLIST_sub ) + sizeof( struct PACKET_ZC_REPAIRITEMLIST );
|
||||
len = c * sizeof( struct REPAIRITEM_INFO ) + sizeof( struct PACKET_ZC_REPAIRITEMLIST );
|
||||
p->packetLength = len;
|
||||
|
||||
WFIFOSET( fd, len );
|
||||
@ -7293,7 +7293,7 @@ void clif_cart_additem( struct map_session_data *sd, int n, int amount ){
|
||||
|
||||
struct PACKET_ZC_ADD_ITEM_TO_CART p;
|
||||
|
||||
p.packetType = cartaddType;
|
||||
p.packetType = HEADER_ZC_ADD_ITEM_TO_CART;
|
||||
p.index = client_index( n );
|
||||
p.amount = amount;
|
||||
p.itemId = client_nameid( sd->cart.u.items_cart[n].nameid );
|
||||
@ -10400,7 +10400,7 @@ void clif_viewequip_ack( struct map_session_data* sd, struct map_session_data* t
|
||||
nullpo_retv( sd );
|
||||
nullpo_retv( tsd );
|
||||
|
||||
struct packet_viewequip_ack packet;
|
||||
struct PACKET_ZC_EQUIPWIN_MICROSCOPE packet;
|
||||
int equip = 0;
|
||||
|
||||
for( int i = 0; i < EQI_MAX; i++ ){
|
||||
@ -10423,8 +10423,8 @@ void clif_viewequip_ack( struct map_session_data* sd, struct map_session_data* t
|
||||
}
|
||||
}
|
||||
|
||||
packet.PacketType = viewequipackType;
|
||||
packet.PacketLength = ( sizeof( packet ) - sizeof( packet.list ) ) + ( sizeof( struct EQUIPITEM_INFO ) * equip );
|
||||
packet.PacketType = HEADER_ZC_EQUIPWIN_MICROSCOPE;
|
||||
packet.PacketLength = sizeof( packet ) + sizeof( struct EQUIPITEM_INFO ) * equip;
|
||||
|
||||
safestrncpy( packet.characterName, tsd->status.name, NAME_LENGTH );
|
||||
|
||||
@ -13230,7 +13230,12 @@ void clif_parse_Cooking(int fd,struct map_session_data *sd) {
|
||||
/// 01fd <index> W (CZ_REQ_ITEMREPAIR)
|
||||
/// 01fd <index>.W <name id>.W <refine>.B <card1>.W <card2>.W <card3>.W <card4>.W ???
|
||||
void clif_parse_RepairItem( int fd, struct map_session_data *sd ){
|
||||
const struct PACKET_CZ_REQ_ITEMREPAIR *p = (struct PACKET_CZ_REQ_ITEMREPAIR *)RFIFOP( fd, 0 );
|
||||
// Hercules has wrong date -> use correct one here
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
const struct PACKET_CZ_REQ_ITEMREPAIR2 *p = (struct PACKET_CZ_REQ_ITEMREPAIR2 *)RFIFOP( fd, 0 );
|
||||
#else
|
||||
const struct PACKET_CZ_REQ_ITEMREPAIR1 *p = (struct PACKET_CZ_REQ_ITEMREPAIR1 *)RFIFOP( fd, 0 );
|
||||
#endif
|
||||
|
||||
if (sd->menuskill_id != BS_REPAIRWEAPON)
|
||||
return;
|
||||
@ -13240,7 +13245,7 @@ void clif_parse_RepairItem( int fd, struct map_session_data *sd ){
|
||||
clif_menuskill_clear(sd);
|
||||
return;
|
||||
}
|
||||
skill_repairweapon( sd, p->index );
|
||||
skill_repairweapon( sd, p->item.index );
|
||||
clif_menuskill_clear(sd);
|
||||
}
|
||||
|
||||
@ -15723,7 +15728,7 @@ void clif_Mail_setattachment( struct map_session_data* sd, int index, int amount
|
||||
WFIFOB(fd,4) = flag;
|
||||
WFIFOSET(fd,packet_len(0x255));
|
||||
#else
|
||||
struct PACKET_ZC_ADD_ITEM_TO_MAIL p;
|
||||
struct PACKET_ZC_ACK_ADD_ITEM_RODEX p;
|
||||
|
||||
if( flag ){
|
||||
memset( &p, 0, sizeof( p ) );
|
||||
@ -15755,7 +15760,7 @@ void clif_Mail_setattachment( struct map_session_data* sd, int index, int amount
|
||||
#endif
|
||||
}
|
||||
|
||||
p.PacketType = rodexadditem;
|
||||
p.PacketType = HEADER_ZC_ACK_ADD_ITEM_RODEX;
|
||||
p.result = flag;
|
||||
|
||||
clif_send( &p, sizeof( p ), &sd->bl, SELF );
|
||||
@ -16227,29 +16232,24 @@ void clif_Mail_read( struct map_session_data *sd, int mail_id ){
|
||||
#else
|
||||
msg_len += 1; // Zero Termination
|
||||
|
||||
int length = sizeof( struct PACKET_ZC_READ_MAIL ) + MAIL_BODY_LENGTH + sizeof( struct mail_item ) * MAIL_MAX_ITEM;
|
||||
WFIFOHEAD( fd, length );
|
||||
struct PACKET_ZC_READ_MAIL *p = (struct PACKET_ZC_READ_MAIL *)WFIFOP( fd, 0 );
|
||||
struct PACKET_ZC_ACK_READ_RODEX *p = (struct PACKET_ZC_ACK_READ_RODEX *)packet_buffer;
|
||||
|
||||
p->PacketType = rodexread;
|
||||
p->PacketLength = length;
|
||||
p->PacketType = HEADER_ZC_ACK_READ_RODEX;
|
||||
p->PacketLength = sizeof( struct PACKET_ZC_ACK_READ_RODEX );
|
||||
p->opentype = msg->type;
|
||||
p->MailID = msg->id;
|
||||
p->TextcontentsLength = msg_len;
|
||||
p->zeny = msg->zeny;
|
||||
|
||||
int offset = sizeof( struct PACKET_ZC_READ_MAIL );
|
||||
safestrncpy( WBUFCP( p, p->PacketLength ), msg->body, msg_len );
|
||||
p->PacketLength += p->TextcontentsLength;
|
||||
|
||||
safestrncpy( WFIFOCP( fd, offset ), msg->body, msg_len );
|
||||
|
||||
offset += msg_len;
|
||||
|
||||
int count = 0;
|
||||
p->ItemCnt = 0;
|
||||
for( int j = 0; j < MAIL_MAX_ITEM; j++ ){
|
||||
item = &msg->item[j];
|
||||
|
||||
if( item->nameid > 0 && item->amount > 0 && ( data = itemdb_exists( item->nameid ) ) != NULL ){
|
||||
struct mail_item* mailitem = (struct mail_item *)WFIFOP( fd, offset );
|
||||
struct PACKET_ZC_ACK_READ_RODEX_SUB* mailitem = (struct PACKET_ZC_ACK_READ_RODEX_SUB*)WBUFP( p, p->PacketLength );
|
||||
|
||||
mailitem->ITID = client_nameid( item->nameid );
|
||||
mailitem->count = item->amount;
|
||||
@ -16261,20 +16261,17 @@ void clif_Mail_read( struct map_session_data *sd, int mail_id ){
|
||||
mailitem->viewSprite = data->look;
|
||||
mailitem->bindOnEquip = item->bound ? 2 : data->flag.bindOnEquip ? 1 : 0;
|
||||
clif_addcards( &mailitem->slot, item );
|
||||
clif_add_random_options( mailitem->optionData, item );
|
||||
clif_add_random_options( mailitem->option_data, item );
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
mailitem->enchantgrade = item->enchantgrade;
|
||||
#endif
|
||||
|
||||
offset += sizeof( struct mail_item );
|
||||
count++;
|
||||
p->PacketLength += sizeof( *mailitem );
|
||||
p->ItemCnt++;
|
||||
}
|
||||
}
|
||||
|
||||
p->ItemCnt = count;
|
||||
p->PacketLength = sizeof( struct PACKET_ZC_READ_MAIL ) + p->TextcontentsLength + sizeof( struct mail_item ) * p->ItemCnt;
|
||||
|
||||
WFIFOSET( fd, p->PacketLength );
|
||||
clif_send( p, p->PacketLength, &sd->bl, SELF );
|
||||
#endif
|
||||
|
||||
if (msg->status == MAIL_UNREAD) {
|
||||
@ -16353,7 +16350,7 @@ void clif_parse_Mail_cancelwrite( int fd, struct map_session_data *sd ){
|
||||
void clif_Mail_Receiver_Ack( struct map_session_data* sd, uint32 char_id, short class_, uint32 level, const char* name ){
|
||||
PACKET_ZC_CHECKNAME p = { 0 };
|
||||
|
||||
p.PacketType = rodexcheckplayer;
|
||||
p.PacketType = HEADER_ZC_CHECKNAME;
|
||||
p.CharId = char_id;
|
||||
p.Class = class_;
|
||||
p.BaseLevel = level;
|
||||
|
@ -70,7 +70,6 @@
|
||||
packet( HEADER_ZC_ITEM_ENTRY, sizeof( struct PACKET_ZC_ITEM_ENTRY ) );
|
||||
packet(0x009e,17);
|
||||
parseable_packet(0x009f,6,clif_parse_TakeItem,2);
|
||||
packet( additemType, sizeof( struct packet_additem ) );
|
||||
packet(0x00a1,6);
|
||||
parseable_packet(0x00a2,6,clif_parse_DropItem,2,4);
|
||||
packet( inventorylistnormalType, -1 );
|
||||
@ -143,7 +142,6 @@
|
||||
parseable_packet(0x00e6,3,clif_parse_TradeAck,2);
|
||||
packet(0x00e7,3);
|
||||
parseable_packet(0x00e8,8,clif_parse_TradeAddItem,2,4);
|
||||
packet( tradeaddType, sizeof( struct PACKET_ZC_ADD_EXCHANGE_ITEM ) );
|
||||
packet(0x00ea,5);
|
||||
parseable_packet(0x00eb,2,clif_parse_TradeOk,0);
|
||||
packet(0x00ec,3);
|
||||
@ -154,7 +152,6 @@
|
||||
packet(0x00f1,2);
|
||||
packet(0x00f2,6);
|
||||
parseable_packet(0x00f3,8,clif_parse_MoveToKafra,2,4);
|
||||
packet( storageaddType, sizeof( struct PACKET_ZC_ADD_ITEM_TO_STORE ) );
|
||||
parseable_packet(0x00f5,8,clif_parse_MoveFromKafra,2,4);
|
||||
packet(0x00f6,8);
|
||||
parseable_packet(0x00f7,2,clif_parse_CloseKafra,0);
|
||||
@ -202,7 +199,6 @@
|
||||
packet(0x0121,14);
|
||||
packet( cartlistequipType, -1 );
|
||||
packet( cartlistnormalType, -1 );
|
||||
packet( cartaddType, sizeof( struct PACKET_ZC_ADD_ITEM_TO_CART ) );
|
||||
packet(0x0125,8);
|
||||
parseable_packet(0x0126,8,clif_parse_PutItemToCart,2,4);
|
||||
parseable_packet(0x0127,8,clif_parse_GetItemFromCart,2,4);
|
||||
@ -414,7 +410,7 @@
|
||||
packet(0x01fa,48);
|
||||
packet(0x01fb,56);
|
||||
packet(0x01fc,-1);
|
||||
parseable_packet( HEADER_CZ_REQ_ITEMREPAIR, sizeof( struct PACKET_CZ_REQ_ITEMREPAIR ), clif_parse_RepairItem, 0 );
|
||||
parseable_packet( HEADER_CZ_REQ_ITEMREPAIR1, sizeof( struct PACKET_CZ_REQ_ITEMREPAIR1 ), clif_parse_RepairItem, 0 );
|
||||
packet(0x01fe,5);
|
||||
packet(0x01ff,10);
|
||||
packet(0x0200,26);
|
||||
@ -1104,7 +1100,6 @@
|
||||
ack_packet(ZC_NOTIFY_BIND_ON_EQUIP,0x02d3,4,2);
|
||||
packet(0x02d5,2);
|
||||
parseable_packet(0x02d6,6,clif_parse_ViewPlayerEquip,2);
|
||||
packet( viewequipackType, -1 );
|
||||
parseable_packet(0x02d8,10,clif_parse_configuration,2,6);
|
||||
packet(0x02d9,10);
|
||||
packet(0x02da,3);
|
||||
@ -2221,7 +2216,6 @@
|
||||
parseable_packet(0x09E8,11,clif_parse_Mail_refreshinbox,2,3); // CZ_OPEN_MAILBOX
|
||||
parseable_packet(0x09E9,2,clif_parse_dull,0); // CZ_CLOSE_MAILBOX
|
||||
parseable_packet(0x09EA,11,clif_parse_Mail_read,2,3); // CZ_REQ_READ_MAIL
|
||||
packet(rodexread,-1); // ZC_ACK_READ_MAIL
|
||||
parseable_packet(0x09EC,-1,clif_parse_Mail_send,2,4,28,52,60,62,64); // CZ_REQ_WRITE_MAIL
|
||||
packet(0x09ED,3); // ZC_ACK_WRITE_MAIL
|
||||
parseable_packet(0x09EE,11,clif_parse_Mail_refreshinbox,2,3); // CZ_REQ_NEXT_MAIL_LIST
|
||||
@ -2235,7 +2229,6 @@
|
||||
packet(0x09F6,11); // ZC_ACK_DELETE_MAIL
|
||||
parseable_packet(0x0A03,2,clif_parse_Mail_cancelwrite,0); // CZ_REQ_CANCEL_WRITE_MAIL
|
||||
parseable_packet(0x0A04,6,clif_parse_Mail_setattach,2,4); // CZ_REQ_ADD_ITEM_TO_MAIL
|
||||
packet( rodexadditem, sizeof( struct PACKET_ZC_ADD_ITEM_TO_MAIL ) ); // ZC_ACK_ADD_ITEM_TO_MAIL
|
||||
parseable_packet(0x0A06,6,clif_parse_Mail_winopen,2,4); // CZ_REQ_REMOVE_ITEM_MAIL
|
||||
packet(0x0A07,9); // ZC_ACK_REMOVE_ITEM_MAIL
|
||||
parseable_packet(0x0A08,26,clif_parse_Mail_beginwrite,0); // CZ_REQ_OPEN_WRITE_MAIL
|
||||
@ -2438,6 +2431,7 @@
|
||||
|
||||
#if PACKETVER >= 20191224
|
||||
parseable_packet( HEADER_CZ_SE_CASHSHOP_OPEN2, sizeof( struct PACKET_CZ_SE_CASHSHOP_OPEN2 ), clif_parse_cashshop_open_request, 0 );
|
||||
parseable_packet( HEADER_CZ_REQ_ITEMREPAIR2, sizeof( struct PACKET_CZ_REQ_ITEMREPAIR2 ), clif_parse_RepairItem, 0 );
|
||||
#endif
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define MAX_ACHIEVEMENT_DB MAX_ACHIEVEMENT_OBJECTIVES
|
||||
|
||||
#define DEFINE_PACKET_HEADER(name, id) const int16 HEADER_##name = id;
|
||||
#define DEFINE_PACKET_ID(name, id) DEFINE_PACKET_HEADER(name, id)
|
||||
|
||||
#include "packets_struct.hpp"
|
||||
|
||||
@ -256,17 +257,7 @@ DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
|
||||
DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
|
||||
DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
DEFINE_PACKET_HEADER(ZC_ITEM_PICKUP_PARTY, 0xb67)
|
||||
#else
|
||||
DEFINE_PACKET_HEADER(ZC_ITEM_PICKUP_PARTY, 0x2b8)
|
||||
#endif
|
||||
DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
DEFINE_PACKET_HEADER(ZC_SEARCH_STORE_INFO_ACK, 0xb64)
|
||||
#else
|
||||
DEFINE_PACKET_HEADER(ZC_SEARCH_STORE_INFO_ACK, 0x836)
|
||||
#endif
|
||||
DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
|
||||
DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e);
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user