[M19] 原版商人 NPC 与交易经济系统 (1.13c Ground Truth)
实装暗黑破坏神 II:毁灭之王 v1.13c 原版城镇商人(Vendor NPC)库存生成、物品交易/收购/修理/赌博定价引擎与四分页商店 UI。
核心 Ground Truth 权威对标 (D2MOO + 官方 MPQ 数据表)
- 商人全局物品缓存 (
SUnitProxy.cpp):SUNITPROXY_InitializeNpcControl/SUNITPROXY_FillGlobalItemCache/SUNITPROXY_FillIGlobaltemCacheRecordForNpc- 严格映射 17 位商人 ID (
nNpcId = 0..16:阿卡拉、基德、恰西、法拉、雷山德、卓格南、赫拉铁力Hralti*、阿尔科、奥玛斯、艾尔吉斯、艾席拉、凯恩、海尔布、贾梅拉、马拉、拉苏克、安亚/尼拉塞克),分离常驻商品pPermCache(PermStoreItem = 1) 与动态随机库存pItemCache。
- 按商人 ID、游戏难度与角色等级动态生成出售物品 (
SUnitNpc.cpp):D2GAME_NPC_FillStoreInventory_6FCC7100&D2GAME_NPC_GenerateStoreItem_6FCC6A60- 商店物品等级公式:
ilvl = max(1, min(99, cLvl + 5)),普通难度受 Act 1..5 幕数上限[12, 20, 28, 36, 45]钳制,噩梦/地狱难度无幕数上限。 ilvl < 25时滚动普通/劣质/超强底材;ilvl >= 25时非固定库存 100% 升级为魔法品质 (ITEMQUAL_MAGIC) 且保底下限提升 (nMinItems = (rand & 1) + 2)。cLvl > 25时在噩梦/地狱难度严格执行扩展级 (UberCode) / 精华级 (UltraCode) 升级骰子以及NightmareUpgrade/HellUpgrade药水替换。
- 1.13c 交易价格与收购价格计算引擎 (
Items.cpp):ITEMS_CalculateTransactionCost (0x6FD9B1C0)及辅助函数0x6FD9AB90/0x6FD9ACE0/0x6FD9CB50。- 精确计算购买价 (
BUY)、商人收购价 (SELL)、修理费 (REPAIR) 与赌博价 (GAMBLE):涵盖防御比例缩放、Staffmods 单技能高额加价(售价/1024vs 收购价/4096)、词缀与ItemStatCost.txt逐点属性加价、镶嵌物半价累加、无形/职业专属收购价/4惩罚、Npc.txt汇率与任务折扣、各难度最高收购上限(普通5k/10k/15k/20k/25k、噩梦30k、地狱35k)及减价属性 (STAT_ITEM_REDUCEDPRICES)。
- 城镇 NPC 交互菜单与四分页商店 UI:
- 原版风格 NPC 交互菜单(交谈 / 交易 / 赌博 / 修理 / 鉴定),左侧 10×10 四分页商店面板(护甲 / 武器 I / 武器 II / 杂物)与右侧玩家背包联动交易。
No due date
100% Completed