1.在模块添加以下代码: & ( lpApplicationName , lpKeyName , lpDefault , lpReturnedString , nSize , lpFileName )
2.以下是用于刷新背包物品名称Timer3的代码: Timer3_Timer() mecxi pn pd BaoN List3.Clear hProcess hProcess, Buffer, mecxi, 4, 0 hProcess, mecxi + &H24, mecxi, 4, 0 hProcess, mecxi + &H854, mecxi, 4, 0 hProcess, mecxi + &H10, BaoN, 4, 0 hProcess, mecxi + &HC, mecxi, 4, 0 pn = 0 BaoN - 1 hProcess, mecxi + pn * 4, , 4, 0 hProcess, + &H14, pd, 4, 0 pd > 0 hProcess, + &H8, , 4, 0 ItemList (()) = 0 pd = 0 pn Frame3.Caption = & List3.ListCount 3.自建一个函数用于把得到ID转换成物品名称,以下是代码: ItemList(ItemName ) dz a = (35) a = (, ItemName, , , 35, .Path & ) = () a = 0 List3.AddItem ItemName & List3.AddItem 4.我用config.ini保存物品名称对应表 [item] 28=精炼石 34=菜鸟布衣(男) 35=丝衣(男) 36=缎衣(男) 38=掩心甲(男) 39=鳞甲(男) 40=金缕甲(男) 41=豹皮战甲(男) 42=狮蛮甲(男) ............ 5.程序运行,物品名称正确的显示出来,不过随着游戏的更新你也许需要不断的更新你的文config.ini。 注: 背包物品地址: [[[[&H8C9E54]+&h24]+&h854]+&h10] 是角色背包最大容量 [[[[&H8C9E54]+&h24]+&h854]+&hC] 是角色背包首地址 [[[[[&H8C9E54]+&h24]+&h854]+&hC]+4*格子序号] 是格子物品首地址(格子数从0开始) [[[[[[&H8C9E54]+&h24]+&h854]+&hC]+4*格子序号]+&h14] 是此格物品的数量 [[[[[[&H8C9E54]+&h24]+&h854]+&hC]+4*格子序号]+&h18] 是此格物品的堆叠上限 [[[[[[&H8C9E54]+&h24]+&h854]+&hC]+4*格子序号]+&h4] 背包内物品类型 (装备&戒指&项链为0,生产材料&声望材料为1,药品为2,精炼石为7,垃圾石头为8,配方为17,宠物牌为23) [[[[[[&H8C9E54]+&h24]+&h854]+&hC]+4*格子序号]+&h8] 物品ID GetPrivateProfileString: DWORD ( LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName); 参数的意义: lpAppName : 配置文件的section名 lpKeyName : 配置文件的key名 lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量. lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器. nSize : 目的缓存器的大小. lpFileName : 是完整的INI文件名. 例: config.ini的内容: [item] 28=精炼石 34=菜鸟布衣(男) 35=丝衣(男) 36=缎衣(男) 38=掩心甲(男) 39=鳞甲(男) 40=金缕甲(男) 41=豹皮战甲(男) 42=狮蛮甲(男) & , 36, , , 35, .Path & ) 在[item]下,找36这项,将值存入变量name,宽度为35,文件地址为App.Path &
转载于:https://blog.51cto.com/zdj63/34403