ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
//https://www.52pojie.cn/thread-931900-1-1.html?from=singlemessage&isappinstalled=0 ``` Dim 当前应用包名,X坐标,Y坐标 当前应用包名 = sys.GetFront() TracePrint 当前应用包名 Dim addr = "0x7"//开始搜索的起始值,我们要找的X坐标信息的地址为886F9040,我们可以填0x7,比8小一点。因为在特征码定位和基址定位中地址是不变的,所以作用是用来加快搜索速度 Dim tb1 = {"lv":1109308085} //第一个特征点的坐标,我们就拿X坐标的值来。显然有点画蛇添足,其实直接拿X坐标地址去读内存就直接获取X坐标的值了 Dim tb2 = {"lv":1116455199,"offset":8}//第二个特征点的坐标。GG里面Y坐标的地址比X坐标地址大,偏移就是为正数 Dim tb = {tb1, tb2} Dim t = TickCount()//按键自带命令,计算内存搜索时间的 Dim A = Sys.MemorySearch(当前应用包名, True,addr, tb, "i32",0,1)//这里的True代表新搜索,显然第一次是新搜索,i32的意思就是特征点的数据类型tb1和tb2这两个键表值的类型,i就是int,1109308085和1116455199,是32位整数型,0代表搜索范围,0为最广,1是搜索次数。只搜索一次。 //返回的A为一个数组。可能在数组中会搜索到很多结果,一般以数组第一个为准,所以搜索到保存A坐标的信息的地址是是A(0) TracePrint "搜索地址为:"&A(0)&",耗时"&(TickCount()-t) //此时A(0)应该是为16进制的地址字符串,偏移为10进制数据,要把结果转换成10进制数值加上偏移再转成16进制的数据。最后转成字符串才能在内存搜索这个命令里面去使用 Dim X地址 = 地址相加(A(0), 0)//该函数下面有注释 Dim Y地址 = 地址相加(A(0), 8) TracePrint X地址 //6进制的地址字符串 Do X坐标 = Sys.MemoryRead(当前应用包名, X地址, "f32")//我们GG搜索到的值为双精度浮点数,所以为f32,这里大小写应该不敏感,官方的提示全部是大写。我用小写也可以搜到 TracePrint X坐标 //输出X的浮点数坐标值 Y坐标 = Sys.MemoryRead(当前应用包名, Y地址, "f32") TracePrint Y坐标//输出Y的浮点数坐标值 ShowMessage "x坐标为:"&X坐标&"\ny坐标为"&Y坐标//页面直接显示一下 Delay 300//循环读取加点间隔 Loop Function 地址相加(地址, 偏移) Dim A = Right(地址,Len(地址)-2)//去掉16进制左边的0x Dim B = Clng("0x"&A)//把这个16进制数据强制转换成十进制整型 Dim C = B+偏移 //结果加偏移 Dim D = Hex(C) //强制转16进制 Dim E = "0x"&D //加上0x,转成字符串 地址相加 = E End Function ```