BetterGI·更好的原神 Javascript脚本编写
 
 
❗注意:文档还在建设中 
 
 
BetterGI 内部有大量原神自动化基础能力的包装,并可以通过 Javascript 书写的脚本进行调用,JS脚本通过ClearScript内置 V8 引擎进行执行。 
 
 
期望最终能够做到自动启动原神并完成所有脚本任务后自动关机。 
 
 
所有脚本存储在软件根目录 User\JsScript 路径下。 
• 脚本仓库:bettergi-scripts-list( repo/js 路径下)。 
• 脚本仓库在线版:https://bgi.sh/
 
 
脚本编写 
每个JS脚本都是一个文件夹,文件夹内必须要有一个脚本描述文件 manifest.json 和一个入口程序文件 *.js  
 
 
脚本的配置可以通过一个 JSON 配置文件进行 UI 渲染,然后用户可以修改配置并执行脚本。 
 
 
项目内所有文件编码必须是 UTF-8 
 
 
 
 
用于在 BetterGI 的调度器中配置变量 
–––––––––––––––––– 
● 全局方法 
例举: 
 
sleep(int millisecondsTimeout) 
• 返回类型: Task 
• 描述: 使当前任务休眠指定的毫秒数  
• 参数:  
millisecondsTimeout(int): 休眠时间,单位为毫秒 
 
 
keyDown(string key) 
• 描述: 按下指定的键  
• 参数:  
key (string):要按下的键,具体可用参数见虚拟键代码表
 
 
keyUp(string key) 
• 描述: 释放指定的键  
• 参数:  
key (string): 要释放的键,具体可用参数见虚拟键代码表
 
 
keyPress(string key) 
• 描述: 按下并释放指定的键  
• 参数:  
key (string): 要按下并释放的键,具体可用参数见虚拟键代码表
 
 
setGameMetrics(int width, int height, double dpi = 1) 
• 描述: 设置你编写脚本环境的游戏分辨率和DPI缩放,在其他电脑上运行时,程序会自动适配。游戏分辨率影响鼠标的绝对位置,也就是 moveMouseTo 方法,屏幕缩放影响鼠标的相对移动,也就是 moveMouseBy 方法。鼠标dpi大小不影响任何操作 
• 参数:  
width (int):游戏宽度  
height (int): 游戏高度  
dpi (double): DPI缩放比例,默认为1,假如你的显示器设置是150%缩放,那这个值就是1.5 
 
 
moveMouseBy(int x, int y) 
• 描述: 移动鼠标相对于当前位置的偏移量 
• 参数:  
x (int):水平偏移量  
y (int): 垂直偏移量 
 
 
moveMouseTo(int x, int y) 
• 描述: 移动鼠标到指定位置  
• 参数:  
x (int): 目标位置的X坐标  
y (int): 目标位置的Y坐标 
 
 
click(int x, int y) 
• 描述: 在指定位置点击鼠标左键  
• 参数:  
x (int):目标位置的X坐标  
y (int): 目标位置的Y坐标 
 
 
leftButtonClick() 
• 描述: 点击鼠标左键 
 
 
leftButtonDown() 
• 描述: 按下鼠标左键 
 
 
leftButtonUp() 
• 描述: 释放鼠标左键 
 
 
rightButtonClick() 
• 描述: 点击鼠标右键 
 
 
rightButtonDown() 
• 描述: 按下鼠标右键 
 
 
rightButtonUp() 
• 描述: 释放鼠标右键 
 
 
middleButtonClick() 
• 描述: 点击鼠标中键 
 
 
middleButtonDown() 
• 描述: 按下鼠标中键 
 
 
middleButtonUp() 
• 描述: 释放鼠标中键 
 
 
captureGameRegion() 
• 返回类型: ImageRegion  
• 描述: 捕获游戏区域的图像 
 
 
● 日志log 
打印日志,支持占位符 
举例: 
 
debug(string? message, params object?[] args) 
• 描述: 在遮罩日志窗口输出调试级别的信息  
• 参数:  
message (string?): 日志消息  
args (object?[]):日志参数 
 
 
info(string? message, params object?[] args) 
• 描述: 在遮罩日志窗口输出信息级别的信息  
• 参数:  
message (string?):日志消息  
args (object?[]): 日志参数 
 
 
warn(string? message, params object?[] args) 
• 描述: 在遮罩日志窗口输出警告级别的信息  
• 参数:  
message (string?): 日志消息  
args (object?[]): 日志参数 
 
 
error(string? message, params object?[] args) 
• 描述: 在遮罩日志窗口输出错误级别的信息  
• 参数:  
message (string?): 日志消息  
args (object?[]): 日志参数 
 
 
 
 
● 文件file 
支持读取脚本目录下的任意文件 
列举: 
 
readTextSync(string path) 
• 描述: 同步读取文件中的所有文本  
• 参数:  
path (string):文件路径  
• 返回类型: string  
• 返回: 从文件中读取的文本 
 
 
readText(string path) 
• 描述: 异步读取文件中的所有文本  
• 参数:  
path (string): 文件路径  
• 返回类型: Task<string> 
• 返回: 从文件中读取的文本 
 
 
readText(string path, dynamic callbackFunc) 
• 描述: 异步读取文件中的所有文本,并调用回调函数 
• 参数:  
path (string): 文件路径  
callbackFunc (dynamic): 回调函数 
• 返回类型: Task<string> 
• 返回: 从文件中读取的文本 
 
 
● 原神 genshin 
举例: 
 
width 
• 类型: int  
• 描述: 游戏宽度 
 
 
height 
• 类型: int  
• 描述: 游戏高度 
 
 
scaleTo1080PRatio 
• 类型: double  
• 描述: 游戏窗口大小相比1080P的缩放比例 
 
 
screenDpiScale 
• 类型: double 
• 描述: 系统屏幕的DPI缩放比例 
 
 
tp(string x, string y) 
• 返回类型: Task 
• 描述: 传送到指定位置  
• 参数:  
x (string): 目标位置的X坐标  
y (string): 目标位置的Y坐标 
 
 
 
 
 
 
● 路径追踪 pathingScript 
 
 
run(string json) 
• 描述: 运行路径追踪任务  
• 参数:  
json (string): 自动路径任务的JSON字符串  
• 返回类型: Task 
 
 
runFile(string path) 
• 描述: 从文件中读取路径追踪任务并运行 • 参数:  
path (string): 文件路径,只允许读取脚本目录下文件  
• 返回类型: Task 
 
 
 
 
● 键鼠脚本 keyMouseScript 
举例: 
 
run(string json) 
• 描述: 运行键鼠脚本任务  
• 参数:  
json (string): 键鼠脚本任务的JSON字符串  
• 返回类型: Task 
 
 
runFile(string path) 
• 描述: 从文件中读取键鼠脚本任务并运行 
• 参数:  
path (string): 文件路径,只允许读取脚本目录下文件  
• 返回类型:Task 
 
 
 
 
 
 
● 任务调度 dispatcher 
 
 
runTask() 
调度实时任务和独立任务 
 
addTimer(RealtimeTimer timer) 
• 描述: 添加实时任务  
• 参数:  
timer (RealtimeTimer): 实时任务触发器 
 
 
runTask(SoloTask soloTask) 
• 描述: 运行独立任务  
• 参数:  
soloTask (SoloTask): 独立任务对象  
• 返回类型: 
 
 
 
 
–––––––––––––––––– 
• 子频道:脚本分享
2024-11-16
浏览3838
使用文档
登录后评论
2
6