接下来我们就能让可恶的配方从此在背包中消失
2.首先看看图片,我要用到那些控件
54f139a8dadd83b5cb130cf3.jpg
主要控件:
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个大补丸