Index: db/packet_db.txt
===================================================================
--- db/packet_db.txt (revision 17349)
+++ db/packet_db.txt (working copy)
@@ -1647,6 +1647,7 @@
0x0439,8,useitem,2:4
0x08d2,10
0x08d1,7
+0x846,4,cashshopreqtab,2 //2011-07-18
// 2011-11-02aRagexe
packet_ver: 28
@@ -1689,7 +1690,7 @@
0x0885,7,actionrequest,2:6
0x0889,10,useskilltoid,2:4:6
0x0870,-1,itemlistwindowselected,2:4:8
-0x0926,18,bookingregreq,2:4:6
+//0x0926,18,bookingregreq,2:4:6
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0817,2,reqclosebuyingstore,0
0x0360,6,reqclickbuyingstore,2
@@ -1698,6 +1699,7 @@
0x0835,2,searchstoreinfonextpage,0
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0439,8,useitem,2:4
+0x0365,18,bookingregreq,2:4:6
//2012-04-10aRagexeRE
packet_ver: 30
@@ -1730,7 +1732,6 @@
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x0889,6,getcharnamerequest,2
0x0884,6,solvecharname,2
-0x08E5,41,bookingregreq,2:4 //Added to prevent disconnections
0x08E6,4
0x08E7,10,bookingsearchreq,2
0x08E8,-1
@@ -1759,6 +1760,7 @@
0x08CF,10 //Amulet spirits
0x0977,14 //Monster HP Bar
0x0916,26,guildinvite2,2
+0x091D,18,bookingregreq,2:4:6
//2012-04-18aRagexeRE [Special Thanks to Judas!]
packet_ver:31
@@ -1782,6 +1784,7 @@
//2012-06-18
packet_ver: 32
0x0983,29
+0x0861,18,bookingregreq,2:4:6 //actually 05-03
//2012-07-02aRagexeRE (unstable)
packet_ver: 33
@@ -1799,6 +1802,7 @@
0x094a,6,getcharnamerequest,2
0x0953,5,walktoxy,2
0x0960,5,changedir,2:4
+0x0879,18,bookingregreq,2:4:6
//2013-03-20Ragexe (Judas)
packet_ver: 34
Index: src/map/clif.c
===================================================================
--- src/map/clif.c (revision 17349)
+++ src/map/clif.c (working copy)
@@ -2307,7 +2307,7 @@
#endif
} else { //Stackable item. 22.B
WBUFW(buf,n+6)=i->amount;
- WBUFW(buf,n+8)=(equip == -2 && id->equip == EQP_AMMO)?i->equip:0;
+ WBUFW(buf,n+8)=(equip == -2 && id->equip == EQP_AMMO)?id->equip:0;
clif_addcards(WBUFP(buf, n+10), i); //8B
#if PACKETVER >= 20071002
WBUFL(buf,n+18)=i->expire_time;
@@ -14435,7 +14435,6 @@
}
#endif
-
/// Adoption System
///
@@ -16340,6 +16339,29 @@
// No need to do anything here
}
+//08c0 <len>.W <openIdentity>.L <itemcount>.W (ZC_ACK_SE_CASH_ITEM_LIST2)
+void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) {
+ short tab = RFIFOW(fd, 2);
+ int j;
+
+ if( tab < 0 || tab > CASHSHOP_TAB_SEARCH )
+ return;
+
+ WFIFOHEAD(fd, 10 + ( cash_shop_items[tab].count * 6 ) );
+ WFIFOW(fd, 0) = 0x8c0;
+ WFIFOW(fd, 2) = 10 + ( cash_shop_items[tab].count * 6 );
+ WFIFOL(fd, 4) = tab;
+ WFIFOW(fd, 8) = cash_shop_items[tab].count;
+
+ for( j = 0; j < cash_shop_items[tab].count; j++ ) {
+ WFIFOW(fd, 10 + ( 6 * j ) ) = cash_shop_items[tab].item[j]->nameid;
+ WFIFOL(fd, 12 + ( 6 * j ) ) = cash_shop_items[tab].item[j]->price;
+ }
+
+ WFIFOSET(fd, 10 + ( cash_shop_items[tab].count * 6 ));
+}
+
+//08ca <len>.W <itemcount> W <tabcode>.W (ZC_ACK_SCHEDULER_CASHITEM)
void clif_cashshop_list( int fd ){
int tab;
@@ -17048,6 +17070,7 @@
{ clif_parse_cashshop_close, "cashshopclose" },
{ clif_parse_cashshop_list_request, "cashshopitemlist" },
{ clif_parse_cashshop_buy, "cashshopbuy" },
+ { clif_parse_CashShopReqTab, "cashshopreqtab"},
/* */
{ clif_parse_MoveItem , "moveitem" },
{ clif_parse_GuildInvite2 , "guildinvite2" },