-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.d.ts
306 lines (288 loc) · 10.9 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
declare module 'genshin-impact-auto-track' {
export interface TransformOfMap {
x: number;
y: number;
a: number;
mapId: number;
}
export interface PositionOfMap {
x: number;
y: number;
mapId: number;
}
export interface Star {
x: number;
y: number;
isEnd: boolean;
}
export interface Info {
path: string;
uid: number;
x: number;
y: number;
a: number;
}
export interface InfoLoadVideo {
path: string;
pathOutFile: string;
}
/**
* 获取 GenshinImpact AutoTrack DLL 版本号,由于上游版本号输出有问题,因此不一定准确。
*
* @returns {string} 版本号。
*/
export function version(): string;
/**
* 初始化运行环境。
*
* ### 返回值
*
* - `true` 表示初始化完毕。当前处在 **已初始化** 状态。
* - `false` 表示初始化失败。当前处在 **未初始化** 状态。
*
* ### 说明
*
* 部分函数需要初始化后才能调用,具体见 [函数手册](#函数手册) 其它函数。
*
* 经过简单测试,初始化的过程大概会持续1-10秒,内存占用峰值约为 1 GB,之后稳定在 270 MB 左右。
*
* 已经处在 **已初始化** 状态则不会进行任何操作。
*
* @returns {boolean} 是否初始化成功。
*/
export function init(): boolean;
/**
* 卸载初始化时所占用的内存。
*
* ### 返回值
*
* - `true` 表示卸载成功,所有需要初始化后才能调用的函数此时不能再被调用。当前处在 **未初始化** 状态。
* - `false` 表示卸载失败。当前处在 **已初始化** 状态。
*
* ### 说明
*
* 已经处在 **未初始化** 状态则不会进行任何操作。
*
* @returns {boolean} 是否卸载成功。
*/
export function uninit(): boolean;
/**
* 设置原神客户端的窗口句柄。
*
* ### 参数
*
* - `handle` 原神客户端的窗口句柄。如果提供非零值,则程序不再自动获取窗口句柄,如果提供 `0`,则自动获取。
*
* ### 返回值
*
* - `true` 表示提供的值是窗口句柄。
* - `false` 表示提供的值并不是窗口句柄。
*
* ### 说明
*
* 某些原神数据的获取是基于原神客户端的,因此需要一个客户端的窗口句柄。默认情况下此句柄由程序自动获取,但有可能会因为编码问题或其它未知的原因而获取不到,此时就需要手动指定客户端的窗口句柄。
*
* 注意,不论本函数返回何值,`hwnd` 只要不是 `0`,就会被设置为窗口句柄,并禁止自动获取窗口句柄。
*
* @param {number} hwnd 原神客户端的窗口句柄。
*/
export function setHandle(hwnd: number): boolean;
/**
* 设置映射目标地图坐标系的原点中心所在天理坐标模型中的坐标。
*
* ### 参数
*
* - `x` 原点在天理坐标模型的横坐标。
* - `y` 原点在天理坐标模型的纵坐标。
*
* ### 返回值
*
* - `true` 表示设置成功。
* - `false` 表示程序出现预料之外的异常(理论上永不出现)。
*
* ### 说明
*
* 要从天理坐标模型映射至目标地图模型时,将目标地图模型的原点在天理坐标模型的对应坐标传入函数,输出即被转换为该坐标为中心。
*
* @param {number} x 原点在天理坐标模型的横坐标。
* @param {number} y 原点在天理坐标模型的纵坐标。
*
* @returns {boolean} 是否设置成功。
*/
export function setWorldCenter(x: number, y: number): boolean;
/**
* 设置映射目标地图坐标系缩放系数与所在天理坐标模型缩放系数的的比值。
*
* ### 参数
*
* - `scale` 放大scale倍即为天理坐标模型缩放系数。
*
* ### 返回值
*
* - `true` 表示设置成功。
* - `false` 表示程序出现预料之外的异常(理论上永不出现)。
*
* ### 说明
*
* 映射目标地图坐标系缩放系数与所在天理坐标模型缩放系数的的比值。
*
* @param {number} scale 放大scale倍即为天理坐标模型缩放系数。
*
* @returns {boolean} 是否设置成功。
*/
export function setWorldScale(scale: number): boolean;
/**
* 获取当前人物所在位置以及角度(箭头朝向)。
*
* ### 返回值
*
* 返回一个对象,包含以下属性:
* - `x` 获取到的人物的x轴坐标位置。
* - `y` 获取到的人物的y轴坐标位置。
* - `a` 获取到的人物的角度(箭头朝向)。
*
* ### 说明
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @returns {TransformOfMap} 获取到的人物的所在地图区域。
*/
export function getTransformOfMap(): TransformOfMap;
/**
* 获取所在位置的所在地图区域并重映射坐标区域。
*
* ### 返回值
*
* 返回一个对象,包含以下属性:
* - `x` 获取到的人物的x轴坐标位置。
* - `y` 获取到的人物的y轴坐标位置。
* - `mapId` 获取到的人物的所在地图区域。
*
* ### 说明
*
* 地图区域的值的解释
*
* | 地图编号 | 含义 |
* | -------- | ------------------------ |
* | `0` | 提瓦特大陆。 |
* | `1` | 渊下宫 |
* | `2` | 地下层岩 |
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @returns {TransformOfMap} 获取到的人物的所在地图区域。
*/
export function getPositionOfMap(): PositionOfMap;
/**
* 获取当前角度(箭头朝向)。
*
* @returns {number} 获取到的人物的角度(箭头朝向)。
*
* ### 说明
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*/
export function getDirection(): number;
/**
* 获取当前视角方位(视角朝向)。
*
* ### 说明
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @returns {number} 获取到的人物的视角方位(视角朝向)。
*/
export function getRotation(): number;
export function getStar(): Star;
export function getStarJson(): string;
/**
* 获取在屏幕右下角显示的玩家的UID。
*
* ### 说明
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @returns {number} 获取到的玩家的UID。
*/
export function getUID(): number;
/**
* 获取本地图片中的UID、当前人物所在位置以及角度(箭头朝向)。
*
* ### 参数
*
* - `path` 输入图片文件路径
*
* ### 返回值
*
* 返回一个对象,包含以下属性:
* - `uid` 获取到的玩家的UID。
* - `x` 获取到的人物的x轴坐标位置。
* - `y` 获取到的人物的y轴坐标位置。
* - `a` 获取到的人物的角度(箭头朝向)。
*
* ### 说明
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @param path 输入图片文件路径
*/
export function getInfoLoadPicture(path: string): Info;
/**
* 获取本地视频中的UID、当前人物所在位置以及角度(箭头朝向)并保存至文本中。
*
* ### 参数
* - `path` 输入视频文件路径
* - `pathOutFile` 输出的路径数据保存文件路径
*
* ### 返回值
*
* 返回一个对象,包含以下属性:
* - `path` 输入视频文件路径
* - `pathOutFile` 输出的路径数据保存文件路径
*
* ### 说明
*
* 写入文本格式如下:
* ```
* | int Time | int uid | double x | double y | double a |
* ```
*
* **注意**:当源程序返回 `false` 时,模块会抛出错误,部分错误可能只是源项目未实现,并非本模块执行错误。
*
* @param path
* @param pathOutFile
*/
export function getInfoLoadVideo(path: string, pathOutFile: string): InfoLoadVideo;
export function debugCapture(): boolean;
/**
* 获取最后设置的错误码。
*
* ### 返回值
*
* 返回一个整数,表示错误码。错误码含义如下:
*
* | 错误码 | 含义 | 可能的原因 |
* | ------ | ---------------------------------------- | ---------- |
* | `0` | 执行成功/正常退出。 | |
* | `1` | 未初始化(当前处在 **未初始化** 状态)。 | |
* | `2` | 未能找到原神窗口句柄。 | |
* | `3` | 窗口画面为空。 | |
* | `4` | 未能匹配到特征点。 | |
* | `5` | 原神小地图区域为空或者区域长宽小于60px。 | |
* | `6` | 未能匹配到派蒙。 | |
* | `7` | 特征点数组访问越界,是个bug。 | |
* | `8` | 未能在UID区域检测到有效UID。 | |
* | `9` | 提取小箭头特征误差过大。 | |
* | `10` | 无效句柄或指定句柄所指向窗口不存在。 | |
* | `11` | 未能取到小箭头区域。 | |
* | `12` | 窗口句柄失效。 | |
* | `13` | 窗口大小小于480px * 360px。 | |
* ### 说明
*
* 由于函数成功执行后可能不会将错误码设为 `0` ,以及一些函数不会设置错误码,因此取出的错误码不一定代表前一条函数产生/引发的错误。
*
* @returns {number} 获取到的错误码。
*/
export function getLastErr(): number;
export function getLastErrMsg(): string;
}