看流星社区

 找回密码
 注册账号
查看: 2946|回复: 6

帮帮忙,为啥得不到物品名称(武林)

[复制链接]

该用户从未签到

发表于 2011-3-21 09:15:41 | 显示全部楼层 |阅读模式
rem [[[[&h12F824]+&h8]+&h24]+&h14]
    rem 物品ID = [[[[[[[&h12F824]+&h8]+&h24]+&h18]+4*n]+$4]+$110]
    rem 物品名称地址 = [[[[[[[&h12F824]+&h8]+&h24]+&h18]+4*n]+$4]+$164]
    aCountAddr = mMemBase + &H8
    aCountAddr = xProc.ReadMemoryInt32(mHwnd, aCountAddr) + &H24
    aCountAddr = xProc.ReadMemoryInt32(mHwnd, aCountAddr) + &H14
    aCount = xProc.ReadMemoryInt32(mHwnd, aCountAddr)
    For i = 0 To aCount - 1
        rem 取得物品名称.
        aAddr = aCountAddr + 4
        aAddr = xProc.ReadMemoryInt32(mHwnd, aAddr) + i * 4
        aAddr = xProc.ReadMemoryInt32(mHwnd, aAddr) + &H4
        aAddr = xProc.ReadMemoryInt32(mHwnd, aAddr) + &H164
        rem 我只需要取物品名称的前3个字符就够了.主要是想判断[30等配方名称.
        Call xProc.ReadMemoryEX(mHwnd, aAddr, 3, b())
        aName = b
        Debug.Print aName
        n = Val(Right(aName, 2))
        If n <= Level Then
            rem 过滤掉.
        End If
    Next

该用户从未签到

发表于 2011-3-21 09:15:48 | 显示全部楼层
b() as byte
取字符串这个函数我已经测试过。可以取得VB制作的EXE程序里的内存中的字符串,也可以修改
只是取不到武林的,是地址错误,还是什么原因。

该用户从未签到

发表于 2011-3-21 09:15:56 | 显示全部楼层
取名称时,获得的是乱码,还是说根本无法获取数据?
另外,只取前三个字符不一定能行,武林的文本是Unicode格式的,你试着获取全部名称然后转成Unicode格式试试?物品名称长度按32字节应该就可以了.

该用户从未签到

发表于 2011-3-21 09:16:01 | 显示全部楼层
取得的数据全部是chr(0)

该用户从未签到

发表于 2011-3-21 09:16:18 | 显示全部楼层
有时看别人公布的地址要注意版本,版本更新了有可能地址或偏移量就变了。另外如果知道程序确切的读取地址,也可以开CE去看看该地址中的内容的具体情况,看看是该地址的内容是正确的,是你的程序读出来不对,还是在CE中看该地址的内容本来就不是物品名称。以此来判断是你的程序有问题还是你用的地址不对。

该用户从未签到

发表于 2011-3-21 09:16:32 | 显示全部楼层
根据本BBS最后更新的79版地址(4.10更新):

1)  地上所有物品数量(包含别人打掉地上的物品)=[[[[&h12F824]+&h8]+&h24]+&h14]  
    这个地址大概是对的。其值总是在5左右跳动,游戏中确实有几个物品(不够显示的数量,估计是有些没在地图显示出来,即别人打的太远了看不见的物品)

2 ) 物品ID=[[[[[[[&h12F824]+&h8]+&h24]+&h18]+4*n]+$4]+$110]
    这个没找过。因为是物品ID,看不出效果。

3) 物品名称地址=[[[[[[[&h12F824]+&h8]+&h24]+&h18]+4*n]+$4]+$164]
    用CE追到+4*N这里时。内存值:069b1b18, 转到这个地址时,整窗口的数据全变成0了。

该用户从未签到

发表于 2011-3-21 09:16:38 | 显示全部楼层
从你提供的3)来看,应该是这个地址或多级指针不正确了,因为在CE里面都不能正常看到物品的名称。不知道是因为基址变了还是什么原因,这个我就不清楚了。初步看来不是你程序的错。建议最好自己按照这里其他朋友提供的查找方法自己找到基址和各级指针及偏移量,并验证通过之后再用自己找到的结果去试试。虽然这样比直接拿人家提供的地址来说要累一点,但可以学到更多的东西,也避免了一些其他的因素的影响。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-15 13:54

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表