Entering 批量操作 clears every selection and every count. Then:
ShopHolder.OnClickItem sets
selectedNum = Amount_NOS the moment the box is checked. Three ticks can empty the shelf and the
purse.There is no "tick them, then say how many" flow in the stock UI.
The box under the list, and its + and −, write to a single "current item" pointer — whichever row you
ticked last (ShopViewNew.OnNumInputValueChanged, ChangeBuyCount). Which produces three behaviours
that look like bugs and are not:
Outside bulk mode there is always exactly one current line, which is why the box feels fine there.
Shop stock is a table of rows — item, count, price, and the group they belong to — and a character is
a merchant by carrying that group's id (ShopProto, NpcPrototype.shopID). Walking both tables
answers "who sells this", which the game will otherwise only tell you by making you visit every stall.
An item with no row in that table is not sold anywhere and has to be gathered, looted or crafted.
Food is C_USEABLE sub-class 4 and wine sub-class 6 — the same numeric slots as belt and necklace in
the equipment enum, which is why the description switch appears to handle armour where it is handling
dinner. The plain cooking water 清泉 sits in the item table beside 调料, 面粉 and 冰糖: grocery stock,
not something drawn from a river. The famous-spring waters (谷帘泉, 惠山石泉, 兰溪水 …) are a separate
tier used for tea and wine.