接下来我们就能让可恶的配方从此在背包中消失
2.首先看看图片,我要用到那些控件
主要控件: List1 /用于显示地面物品 List2 /用于显示需要过滤的物品名称 Timer1 /用于刷新地面物品 Timer2 /用于过滤地面物品 Combo1 /用于添加或保存过滤物品名称 Command1 /添加按钮 Command2 /删除按钮 模块添加: ( hProcess , lpBaseAddress , lpBuffer , nSize , lpNumberOfBytesWritten ) 3.我们来看看过滤物品的核心代码,以下为Timer2_Timer代码: Timer2_Timer() mecxi WpNameT pn WpName(65) x hProcess hProcess, &H8C9E54, mecxi, 4, 0 hProcess, mecxi + &H8, mecxi, 4, 0 hProcess, mecxi + &H24, mecxi, 4, 0 mecxi <> 0 pn = 0 768 hProcess, mecxi + &H18, , 4, 0 hProcess, + pn * 4, , 4, 0 > 0 hProcess, + 4, , 4, 0 hProcess, + &H164, WpNameT, 4, 0 hProcess, WpNameT, WpName(0), 64, 0 x = 0 List2.ListCount - 1 (WpName, List2.List(x)) > 0 hProcess, + &H110, 0, 4, 0 Label1.Caption = & (WpName) x pn 3.1.地面上的物品得用一个0 768循环来判断哪个值内存在物品,比如说地面上有四个物品,则0 768里面就会有4个值是存在着物品,也就说游戏最多能显示769件地面物品。 3.2.首先判断地面上是否存在物品,如果存在则循环769次查找物品,当找到0 768中的一个物品时,程序得到物品的名称,接下来用一个循环来对比物品名称与过滤表做对比,如果为要过滤的物品则改变当前物品在内存的ID,游戏程序再执行捡取动作就会实现过滤功能,物品检起来了,但是并不在背包内,也没有捡到物品的提示。 4.最后就是过滤表的制作了,这个很简单,只要有添加项目和删除项目的功能就可以。这里我用到Combo控件作为输入框,因为可以记录一些可能会用到的物品名称。 Command1_Click() Combo1.Text <> List2.AddItem Combo1.Text Command2_Click() List2.ListIndex <> -1 List2.RemoveItem (List2.ListIndex) 5.最后的成品!标签显示了已经过滤的物品。最后,默哀5分钟以悼念做测试时销毁的5个大补丸
转载于:https://blog.51cto.com/zdj63/34404