Multi-client support for clif_equipitemack with packet identifier ZC_WEAR_EQUIP_ACK
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
This commit is contained in:
parent
fa75733cc1
commit
817d6bf800
@ -107,7 +107,7 @@ packet_ver: 5
|
|||||||
0x00a7,8,useitem,2:4
|
0x00a7,8,useitem,2:4
|
||||||
0x00a8,7
|
0x00a8,7
|
||||||
0x00a9,6,equipitem,2:4
|
0x00a9,6,equipitem,2:4
|
||||||
0x00aa,7
|
0x00aa,7,ZC_WEAR_EQUIP_ACK,2:4:6
|
||||||
0x00ab,4,unequipitem,2
|
0x00ab,4,unequipitem,2
|
||||||
0x00ac,7
|
0x00ac,7
|
||||||
//0x00ad,-1
|
//0x00ad,-1
|
||||||
@ -1586,7 +1586,7 @@ packet_ver: 25
|
|||||||
//0x083F,22
|
//0x083F,22
|
||||||
|
|
||||||
//2010-06-29aRagexeRE
|
//2010-06-29aRagexeRE
|
||||||
0x00AA,9
|
0x00AA,9,ZC_WEAR_EQUIP_ACK,2:4:6:8
|
||||||
//0x07F1,18
|
//0x07F1,18
|
||||||
//0x07F2,8
|
//0x07F2,8
|
||||||
//0x07F3,6
|
//0x07F3,6
|
||||||
@ -1631,7 +1631,7 @@ packet_ver: 26
|
|||||||
0x0857,-1
|
0x0857,-1
|
||||||
0x0858,-1
|
0x0858,-1
|
||||||
0x0859,-1
|
0x0859,-1
|
||||||
0x08d0,9
|
0x08d0,9,ZC_WEAR_EQUIP_ACK,2:4:6:8
|
||||||
|
|
||||||
//2011-10-05aRagexeRE
|
//2011-10-05aRagexeRE
|
||||||
packet_ver: 27
|
packet_ver: 27
|
||||||
@ -1869,7 +1869,7 @@ packet_ver: 34
|
|||||||
0x0996,-1 //store itemlist equip
|
0x0996,-1 //store itemlist equip
|
||||||
0x0997,-1 //ZC_EQUIPWIN_MICROSCOPE_V5
|
0x0997,-1 //ZC_EQUIPWIN_MICROSCOPE_V5
|
||||||
0x0998,8,equipitem,2:4 // CZ_REQ_WEAR_EQUIP_V5
|
0x0998,8,equipitem,2:4 // CZ_REQ_WEAR_EQUIP_V5
|
||||||
0x0999,11 // cz_wear_equipv5
|
0x0999,11,ZC_WEAR_EQUIP_ACK,2:4:8:10 // cz_wear_equipv5
|
||||||
0x099a,9 // take_off_equipv5
|
0x099a,9 // take_off_equipv5
|
||||||
0x099b,8 //maptypeproperty2
|
0x099b,8 //maptypeproperty2
|
||||||
|
|
||||||
|
@ -3390,36 +3390,46 @@ void clif_statusupack(struct map_session_data *sd,int type,int ok,int val)
|
|||||||
/// 2 = failure due to low level
|
/// 2 = failure due to low level
|
||||||
void clif_equipitemack(struct map_session_data *sd,int n,int pos,uint8 flag)
|
void clif_equipitemack(struct map_session_data *sd,int n,int pos,uint8 flag)
|
||||||
{
|
{
|
||||||
int fd, header, offs = 0;
|
int fd = 0, cmd = 0, look = 0;
|
||||||
#if PACKETVER < 20110824
|
struct s_packet_db *info = NULL;
|
||||||
header = 0xaa;
|
|
||||||
#elif PACKETVER < 20120925
|
|
||||||
header = 0x8d0;
|
|
||||||
#else
|
|
||||||
header = 0x999;
|
|
||||||
#endif
|
|
||||||
nullpo_retv(sd);
|
nullpo_retv(sd);
|
||||||
|
|
||||||
|
cmd = packet_db_ack[sd->packet_ver][ZC_WEAR_EQUIP_ACK];
|
||||||
|
if (!cmd || !(info = &packet_db[sd->packet_ver][cmd]) || !info->len)
|
||||||
|
return;
|
||||||
|
|
||||||
fd = sd->fd;
|
fd = sd->fd;
|
||||||
WFIFOHEAD(fd,packet_len(header));
|
|
||||||
WFIFOW(fd,offs+0) = header;
|
|
||||||
WFIFOW(fd,offs+2) = n+2;
|
|
||||||
#if PACKETVER >= 20120925
|
|
||||||
WFIFOL(fd,offs+4) = pos;
|
|
||||||
offs += 2;
|
|
||||||
#else
|
|
||||||
WFIFOW(fd,offs+4) = (int)pos;
|
|
||||||
#endif
|
|
||||||
#if PACKETVER < 20100629
|
|
||||||
WFIFOB(fd,offs+6) = flag;
|
|
||||||
#else
|
|
||||||
if (flag == ITEM_EQUIP_ACK_OK && sd->inventory_data[n]->equip&EQP_VISIBLE)
|
if (flag == ITEM_EQUIP_ACK_OK && sd->inventory_data[n]->equip&EQP_VISIBLE)
|
||||||
WFIFOW(fd,offs+6) = sd->inventory_data[n]->look;
|
look = sd->inventory_data[n]->look;
|
||||||
else
|
|
||||||
WFIFOW(fd,offs+6) = 0;
|
WFIFOHEAD(fd, info->len);
|
||||||
WFIFOB(fd,offs+8) = flag;
|
WFIFOW(fd, 0) = cmd;
|
||||||
#endif
|
WFIFOW(fd, info->pos[0]) = n+2;
|
||||||
WFIFOSET(fd,packet_len(header));
|
switch (cmd) {
|
||||||
|
case 0xaa:
|
||||||
|
WFIFOW(fd, info->pos[1]) = pos;
|
||||||
|
if (sd->packet_ver < date2version(20100629))
|
||||||
|
WFIFOW(fd, info->pos[2]) = (flag == ITEM_EQUIP_ACK_OK ? 1 : 0);
|
||||||
|
else {
|
||||||
|
WFIFOL(fd, info->pos[2]) = look;
|
||||||
|
WFIFOW(fd, info->pos[3]) = (flag == ITEM_EQUIP_ACK_OK ? 1 : 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8d0:
|
||||||
|
if (flag == ITEM_EQUIP_ACK_FAILLEVEL)
|
||||||
|
flag = 1;
|
||||||
|
case 0x999:
|
||||||
|
if (cmd == 0x999)
|
||||||
|
WFIFOL(fd, info->pos[1]) = pos;
|
||||||
|
else
|
||||||
|
WFIFOW(fd, info->pos[1]) = pos;
|
||||||
|
WFIFOL(fd, info->pos[2]) = look;
|
||||||
|
WFIFOW(fd, info->pos[3]) = flag;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
WFIFOSET(fd, info->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -18123,6 +18133,7 @@ void packetdb_readdb(void)
|
|||||||
{ "ZC_CLEAR_DIALOG", ZC_CLEAR_DIALOG},
|
{ "ZC_CLEAR_DIALOG", ZC_CLEAR_DIALOG},
|
||||||
{ "ZC_C_MARKERINFO", ZC_C_MARKERINFO},
|
{ "ZC_C_MARKERINFO", ZC_C_MARKERINFO},
|
||||||
{ "ZC_NOTIFY_BIND_ON_EQUIP", ZC_NOTIFY_BIND_ON_EQUIP },
|
{ "ZC_NOTIFY_BIND_ON_EQUIP", ZC_NOTIFY_BIND_ON_EQUIP },
|
||||||
|
{ "ZC_WEAR_EQUIP_ACK", ZC_WEAR_EQUIP_ACK },
|
||||||
};
|
};
|
||||||
const char *filename[] = { "packet_db.txt", DBIMPORT"/packet_db.txt"};
|
const char *filename[] = { "packet_db.txt", DBIMPORT"/packet_db.txt"};
|
||||||
int f;
|
int f;
|
||||||
|
@ -48,6 +48,7 @@ enum e_packet_ack {
|
|||||||
ZC_CLEAR_DIALOG,
|
ZC_CLEAR_DIALOG,
|
||||||
ZC_C_MARKERINFO,
|
ZC_C_MARKERINFO,
|
||||||
ZC_NOTIFY_BIND_ON_EQUIP,
|
ZC_NOTIFY_BIND_ON_EQUIP,
|
||||||
|
ZC_WEAR_EQUIP_ACK,
|
||||||
//add other here
|
//add other here
|
||||||
MAX_ACK_FUNC //auto upd len
|
MAX_ACK_FUNC //auto upd len
|
||||||
};
|
};
|
||||||
@ -365,23 +366,14 @@ enum useskill_fail_cause
|
|||||||
|
|
||||||
enum clif_messages {
|
enum clif_messages {
|
||||||
/* Constant values */
|
/* Constant values */
|
||||||
|
// clif_cart_additem_ack flags
|
||||||
ADDITEM_TO_CART_FAIL_WEIGHT = 0x0,
|
ADDITEM_TO_CART_FAIL_WEIGHT = 0x0,
|
||||||
ADDITEM_TO_CART_FAIL_COUNT = 0x1,
|
ADDITEM_TO_CART_FAIL_COUNT = 0x1,
|
||||||
|
|
||||||
// clif_equipitemack flag
|
// clif_equipitemack flags
|
||||||
#if PACKETVER < 20110824
|
|
||||||
ITEM_EQUIP_ACK_OK = 1,
|
|
||||||
ITEM_EQUIP_ACK_FAIL = 0,
|
|
||||||
ITEM_EQUIP_ACK_FAILLEVEL = 0,
|
|
||||||
#elif PACKETVER < 20120925
|
|
||||||
ITEM_EQUIP_ACK_OK = 0,
|
|
||||||
ITEM_EQUIP_ACK_FAIL = 1,
|
|
||||||
ITEM_EQUIP_ACK_FAILLEVEL = 1,
|
|
||||||
#else
|
|
||||||
ITEM_EQUIP_ACK_OK = 0,
|
ITEM_EQUIP_ACK_OK = 0,
|
||||||
ITEM_EQUIP_ACK_FAIL = 1,
|
ITEM_EQUIP_ACK_FAIL = 1,
|
||||||
ITEM_EQUIP_ACK_FAILLEVEL = 2,
|
ITEM_EQUIP_ACK_FAILLEVEL = 2,
|
||||||
#endif
|
|
||||||
/* -end- */
|
/* -end- */
|
||||||
|
|
||||||
//! NOTE: These values below need client version validation
|
//! NOTE: These values below need client version validation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user