雨落空林 发表于 2011-4-14 14:44:29

谁能用VB写个历遍背包的源吗啊

谁能用VB写个历遍背包的源吗啊。求教了。其它语言看不懂,刚学VB几天。。谢谢了。
找到基址不会写。郁闷。
背包基址
物品最大格子数=[[背包基址]+398]   字节
材料最大格子数=[[背包基址]+399]   字节
任务最大格子数=[[背包基址]+39A]   字节
背包格子首地址=[[[背包基址]+380]+格子序号*4]   格子序号从0开始
格子序号=-背包格子首地址+10]   
背包格子物品数量=[[背包格子首地址+14]+3C]   字节
背包格子物品名称=[[[背包格子首地址+28]+18]+0]   杂物
背包格子物品说明=[[[背包格子首地址+28]+1C]+0]   杂物
背包格子物品类型=[[[背包格子首地址+28]+50]+0]   杂物
背包格子物品名称=[[[背包格子首地址+28]+28]+0]   装备
背包格子物品说明=[[[背包格子首地址+28]+34]+0]   装备
背包格子物品类型=[[[背包格子首地址+28]+58]+0]   装备

一个人在漂 发表于 2011-4-14 14:44:37

ReadProcessMemory hProcess, ByVal DYNAMIC_BASE_ADDR, dynamic_base, 4, 0&
    ReadProcessMemory hProcess, ByVal dynamic_base + &H20, role_base, 4, 0&
    ReadProcessMemory hProcess, ByVal role_base + &HC44, pack_base, 4, 0&
    ReadProcessMemory hProcess, ByVal pack_base + &H10, pack_count, 4, 0&
    ReadProcessMemory hProcess, ByVal pack_base + &HC, pack_addr, 4, 0&
    For i = 0 To pack_count - 1
      ReadProcessMemory hProcess, ByVal pack_addr + i * 4, pack_addr_n, 4, 0&
      If pack_addr_n > 0 Then
      ReadProcessMemory hProcess, ByVal pack_addr_n + &H4, pack_type, 4, 0&
      ReadProcessMemory hProcess, ByVal pack_addr_n + &H8, pack_id, 4, 0&
      ReadProcessMemory hProcess, ByVal pack_addr_n + &H14, pack_item_count, 4, 0&
                  Select Case pack_type
                     Case 0, 3
                        NamePy1 = &HDC
                        NamePy2 = &HC
                     Case 2
                        NamePy1 = &HC8
                        NamePy2 = &H8
                     Case 6
                        NamePy1 = &HCC
                        NamePy2 = &HC
                     Case 7
                        NamePy1 = &HD0
                        NamePy2 = &H4
                     Case 8, 9, 23
                        NamePy1 = &H54
                        NamePy2 = &HC
                     Case 11
                        NamePy1 = &HC8
                        NamePy2 = &HC
                     Case 15
                        NamePy1 = &HE4
                        NamePy2 = &HC
                     Case 10, 13, 16, 19, 20, 27, 29, 31, 39
                        NamePy1 = &H4C
                        NamePy2 = &H4
                     Case 17
                        NamePy1 = &H4C
                        NamePy2 = &H8
                     Case 26
                        NamePy1 = &H3C
                        NamePy2 = &HC
                     Case 36
                        NamePy1 = &HB8
                        NamePy2 = &H4
                  Case Else
                        NamePy1 = &HC8
                        NamePy2 = &H8
                   End Select
         
      ReadProcessMemory hProcess, ByVal pack_addr_n + NamePy1, NameAddr, 4, 0
      ReadProcessMemory hProcess, ByVal NameAddr + NamePy2, pack_item_name(0), 64, 0
      pack_item_name1 = Left$(pack_item_name, 64)
      pack_item_name1 = KillChr0(Trim(pack_item_name1))
      End If
    Next i

雨落空林 发表于 2011-4-14 14:44:52

首先太感谢楼上朋友,要是能给个注释就好了,还有有点不明白。得到你的代码我可以举一反三。。再次谢谢,要能给出如何变量更好了。是不是感觉要求太高,不过我是新手,原谅我这一次吧。不会有下次。

深白海豚 发表于 2011-4-14 14:45:00

是指變數定義嗎?如果不是的話,你再描述一下你要什麼

Dim pack_base As Long      '包包總基址
Dim pack_count As Long   '包包最大數
Dim pack_addr As Long       '包包基址
Dim pack_addr_n As Long'包包第n個物品位置
Dim pack_type As Long      '物品的類型
Dim pack_id As Long            '物品id
Dim pack_item_count As Long   '物品數量
Dim pack_item_name(63) As Byte   '物品名稱
Dim pack_item_name1 As String   '物品名稱
Dim NamePy1 As Long   '取得物品名稱惼移量1
Dim NamePy2 As Long    ''取得物品名稱惼移量2
Dim NameAddr As Long   '物品名稱過渡用

zy530900999 发表于 2011-4-14 14:45:07

跟遍历怪物大同小异,搜搜论坛吧,有很多。

liuyh7788 发表于 2011-12-1 20:31:03

我不能上传附件,不然我给你个完整的显示背包每个格子里的物品数量,和名称
页: [1]
查看完整版本: 谁能用VB写个历遍背包的源吗啊