I found some behavier about item weight and shoptype.
If charactor have weight == 0 , max_weight == 4000
and itemid = 501 (Red_Potion) weight 7 (70)
I can buy stuff about 80 ea (max_weight/itemid) not 571 ea for real weight ( max_weight/item_weight )
But anyone can fix it. goto clif.c line round 18240 in function clif_npc_market_open
 
/* NPC Market (by Ind after an extensive debugging of the packet, only possible thanks to Yommy <3) */
void clif_npc_market_open(struct map_session_data *sd, struct npc_data *nd) {
#if PACKETVER >= 20131223
	struct npc_item_list *shop;
	unsigned short shop_size, i, c;
	nullpo_retv(sd);
	nullpo_retv(nd);
	shop = nd->u.scr.shop->item;
	shop_size = nd->u.scr.shop->items;
	npcmarket_open.PacketType = npcmarketopenType;
	for(i = 0, c = 0; i < shop_size; i++) {
		struct item_data *id = NULL;
		if (shop[i].nameid && (id = itemdb->exists(shop[i].nameid)) != NULL) {
			npcmarket_open.list[c].nameid = shop[i].nameid;
			npcmarket_open.list[c].price  = shop[i].value;
			npcmarket_open.list[c].qty    = shop[i].qty;
			npcmarket_open.list[c].type   = itemtype(id->type);
			// npcmarket_open.list[c].view   = ( id->view_id > 0 ) ? id->view_id : id->nameid; << comment old one
			npcmarket_open.list[c].view   = itemdb_weight(id->nameid); << add new one 
			c++;
		}
	}
	npcmarket_open.PacketLength = 4 + ( sizeof(npcmarket_open.list[0]) * c );
	clif->send(&npcmarket_open,npcmarket_open.PacketLength,&sd->bl,SELF);
#endif
}
			


    Find content
 Not Telling
	
