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 .W .L .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 .W W .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" },