Skip to content

Latest commit

 

History

History
355 lines (283 loc) · 9.24 KB

README_CN.md

File metadata and controls

355 lines (283 loc) · 9.24 KB

AutomaticGamepad(自动化虚拟手柄)

程序用途

  • 为主机游戏编写自动化脚本
支持设备:video_game: Xbox One X Xbox Series X PlayStation 4 PlayStation 5
测试情况:arrow_forward:

前置条件

  1. 需要一台PC,一台Xbox(或者PS5、PS4)
  2. 原理是通过本地局域网内用PC串流Xbox(或者PS5),然后通过该软件发送模拟手柄的信号到PC上的串流窗口

使用说明

  1. 安装Drivers目录中对应版本的模拟手柄驱动程序 ViGEmBusSetup.msi
  2. 运行Xbox.exe(或者PS Remote Play.exe),串流你的Xbox(或者PS5)
  3. 配置 config.ini,设置相应的GamepadType
    1. Xbox的设置为0,PlayStation的设置为1
  4. 运行AutomaticGamepad.exe
  5. 选择你要运行的脚本,点击绑定窗口,绑定成功后,设置运行次数,最后点击启动即可

Xbox的虚拟控制器

Playstation的虚拟控制器


脚本函数

  1. 脚本语言是JavaScript
  2. 脚本文件后缀为 .ag
  3. 将脚本文件放置在与该软件同级的目录下,程序中点击刷新即可看到

sleep

// 让程序休眠一段时间
void sleep(double milliseconds)
  • milliseconds: 休眠时长(毫秒)

setdelay

// 设置调用方法后的延迟时间,调用方法有:button()、dpad()等等
void setdelay(double delay)
  • delay:延迟时间(毫秒)

button

// 按下按钮
// 例如按下LB按钮,或者按下L1按钮
void button(string name, double duration = 200)
  • name:按钮键位名
  • duration:按下的持续时长,默认值200毫秒(毫秒)

dpad

// 按下 dpad 按钮
// 例如按下DPad的上按键
void dpad(string name, double duration = 200)
  • name:DPad键位名
  • duration:按下的持续时长,默认值200毫秒(毫秒)

trigger

// 按下 触发器
// 例如按下LT或者RT,按下L1或者R1
void trigger(string name, double val, double duration = 200)
  • name:触发器键位名
  • val:触发器按压值,范围为[0, 1],完全按压下去为1
  • duration:按下的持续时长,默认值200毫秒(毫秒)

axis

// 推动摇杆的一个轴
// 例如推动左摇杆的X轴或者Y轴,推动右摇杆的X轴或Y轴
void axis(string name, double val, double duration = 200)
  • name:摇杆键位名
  • val:摇杆推动值,范围为[-1, 1],左下为-1,右上为1
  • duration:按下的持续时长,默认值200毫秒(毫秒)

axis2

// 推动摇杆的两个轴
void axis2(string name1, string name2, double val1, double val2, double duration = 200)
  • name1:摇杆键位名
  • name2:摇杆键位名
  • val1:摇杆推动值,范围为[-1, 1],左下为-1,右上为1
  • val2:摇杆推动值,范围为[-1, 1],左下为-1,右上为1
  • duration:按下的持续时长,默认值200毫秒(毫秒)

buttonstate

// 按下按钮
void buttonstate(string name, bool state)

dpadstate

// 按下 dpad 按钮
void dpadstate(string name, bool state)

triggerstate

// 按下 触发器
void triggerstate(string name, double val)
  • name:触发器键位名
  • val:触发器按压值,范围为[0, 1],完全按压下去为1

axisstate

// 推动摇杆的一个轴
void axisstate(string name, double val)
  • name:摇杆键位名
  • val:摇杆推动值,范围为[-1, 1],左下为-1,右上为1

axis2state

// 推动摇杆的两个轴
void axis2state(string name1, string name2, double val1, double val2)
  • name1:摇杆键位名
  • name2:摇杆键位名
  • val1:摇杆推动值,范围为[-1, 1],左下为-1,右上为1
  • val2:摇杆推动值,范围为[-1, 1],左下为-1,右上为1

键位名自定义

按钮键位名

Xbox PlayStation
A1键 "a" △键 b1
B键 "b" ○键 "b2"
X键 "x" X键 "b3"
Y键 "y" □键 "b4"
LB键 "lb" L1键 "l1"
RB键 "rb" R1键 "r1"
左摇杆按下键 "lsb" 左摇杆按下键键 "l3"
右摇杆按下键 "rsb" 右摇杆按下键 "r3"
菜单键 "menu" 分享键 "share"
视图键 "view" 选项键 "option"
XBOX键 "home" PS键 "home"
触摸板键 "touchpad"

DPad键位名

Xbox & PlayStation
方向上键 "up"
方向下键 "down"
方向左键 "left"
方向右键 "right"

触发器键位名

                                                                                                       
XboxPlayStation
LT键"lt"L2键"l2"
RT键"rt"R2键"r2"

摇杆键位名

                                                                                                               
Xbox & PlayStation
左摇杆X轴"lsx"
左摇杆Y轴"lsy"
右摇杆X轴"rsx"
右摇杆Y轴"rsy"

例子说明

// 比如要在艾尔登法环的”通往王朝的崖上道路“这个地图用武器“神躯化剑”刷魂
// 步骤是要先去到这个地图“通往王朝的崖上道路”,并双持“神躯化剑”,然后就按照上面的使用说明走一遍流程即可

// 回城重置
button("view")
button("y")
button("a")
button("a")

// 等待加载地图时间
sleep(5500)

// 往左前走
axis2("lsx", "lsy", -0.31, 1, 5200)

// 放战技
trigger("lt", 1)

// 等待怪被清的差不多
sleep(5000)

example.gif

引用项目

ViGEmBus ViGEm.NET