1. 首页 > 游戏攻略秘籍

游戏动态坐标获得 游戏里的坐标

作者:admin 更新时间:2025-02-17
摘要:一、按键精灵9怎么获取游戏窗口的后台坐标。高手解答下//得到鼠标指向的窗口句柄Hwnd=Plugin.Window.MousePoint()//得到窗口句柄的客户区大小Rect=Plugin.Window.GetClientRect(Hwnd)DimMyArrayMyArray=Split(Rect,|)Ux=CLng(MyArray(0))Uy=Clng(MyArray(1))接着就是后台的...,游戏动态坐标获得 游戏里的坐标

 

一、按键精灵9如何获取游戏窗口的后台坐标。高手解答下

//得到鼠标指给的窗口句柄

Hwnd

=

Plugin.Window.MousePoint()

//得到窗口句柄的客户区大致

Rect

=

Plugin.Window.GetClientRect(Hwnd)

Dim

MyArray

MyArray=Split(Rect,"|")

Ux

=

CLng(MyArray(0))

Uy

=

Clng(MyArray(1))

接着就是后台的命令了

记下Ux

Uy

都是游戏窗口起始点的坐标

你在截取屏幕时获取的屏幕坐标

再加上窗口起始点坐标就是窗口里的坐标了

例如:

x+Ux,y+Uy

这就是窗口里的坐标

谢谢

如有难题请加Q

加备注

谢谢

二、怎样用易语言获取游戏地图上面的坐标

地址=[[[[基址]+一级偏移]+二级偏移]+三级偏移]+四级偏移]+……,最多我遇到八级偏移。

坐标一般是用浮点数存储的,你在游戏里面看是300,但实际时也许是300.12,300.45这样子的。因此直接搜整数型的搜300搜差点。

方式一:搜血量的地址。比如是[[CD866C]+1C]+28]+280。那么,大家可以得出CD866C是基址,[[CD866C]+1C]+28]是人物基址。一般跟人物有关的地址存放的位置都挺近的,于是,可以用“结构化内存监视器”(网上有下的)遍历四级偏移280周围的地址,例如:[[CD866C]+1C]+28]+0到[[CD866C]+1C]+28]+99C。寻找有没有跟300,400相近的数。

方式二:搜索未知的初始量,类型浮点数或双浮点数。搜出来数据量会很大。接着移动一下人物位置,坐标会变。如果坐标变小,搜减小的数值;如果坐标变大,搜增大的数值。这样搜出的数据量越来越小,在最后的数据中找到地址,接着搜基址和偏移。

总之,内存这方面并不简单,要多看视频,积累经验。纯手打的哦!

三、游戏窗口的鼠标坐标和实际的坐标不一致,如何换算

这个有很多种写法

写法一

1先将鼠标指给游戏窗口获取游戏窗口句柄

Hwnd= Plugin.Window.MousePoint()

2建立壹个动态数组

dim MyArray

3通过获取到的句柄Hwnd得到游戏窗口大致

sRect= Plugin.Window.GetClientRect(Hwnd)

4通过数组分割函数将得到的坐标分割为两组

MyArray= Split(sRect,"|")

5,通过类型转换函数将得的坐标转换为LNG并赋值

Ux= Clng(MyArray(0))

Uy= Clng(MyArray(1))

假如普通抓点坐标为100,100则游戏内坐标为 100-Ux 100-Uy

完整代码

Hwnd= Plugin.Window.MousePoint()

sRect= Plugin.Window.GetClientRect(Hwnd)

dim MyArray

MyArray= Split(sRect,"|")

Ux= Clng(MyArray(0))

Uy= Clng(MyArray(1))

写法二

利用ScreenToClient(hwnd,x,y)函数,转换实际坐标和窗口坐标

首先

1先将鼠标指给游戏窗口获取游戏窗口句柄

Hwnd= Plugin.Window.MousePoint()

2将原来抓点的值代入ScreenToClient(hwnd,x,y)函数则可以得到窗口坐标

示例:

x= 100:y= 100

dm_ret= dm.ScreenToClient(hwnd,x,y)

这里利用了大漠插件的功能,实际上按键自带的VB函数就可以完成。

还有其它许多写法,对于新人来说,这两种就已经够用了