此处应有介绍
- 需求
python3.10
或以上的x64版本
作为运行环境 - 下载专案后在专案目录运行
python -m pip install -r requirements.txt
安装依赖 - 如果遇到安装依赖问题请自行搜索
pip换源
相关 - 执行
main.py
- 去 release 下载带exe的发布
- 双击
FFDraw.exe
运行 - 注:exe版本未必属于最新版本,也未必适应你的运行环境,请尽量使用python版本或从其他人获取最新版本的build (安装
pyinstaller
并运行pack.py
) - 注2:cn版本与正常版本差异为默认值适配国内网络、国服默认路径编码,无需手动设置,两个版本均能适用与国服与国际服
- 注3:如果报毒,可以使用
python版本
或者关掉防毒
或者添加c盘信任
或者不用
- 如果在非独显直连的机器上遇到图层黑色无法穿透之类,请尝试游戏级本程序均使用核显并重启程序
- 如果遇到报错
failed to set hardware filter to promiscuous mode
之类,请修改config.json
中的sniffer/sniff_promisc
为false
并重启程序 - 如果遇到报错
Npcap/Winpcap is not installed
之类,请下载 npcap 安装后重启 - 如果遇到编码问题
utf8 cant decode
之类,请修改config.json
中的path_encoding
为gbk
并重启程序 - 关于跨域:设置
web_server/enable_cors
,另外如果你不打算给链接设置ssl, chrome 请在 chrome://flags/ 中设置Block insecure private network requests
为disable
(ref)
本程序基础的使用基于 http rpc api, 运行后将json指令传送到 http://127.0.0.1:8001/rpc
即可
一个基础的 json payload 例子:
{
"cmd": "add_omen",
"color": "enemy",
"shape_scale": {
"key": "circle",
"range": 5
},
"pos": {
"key": "actor_pos",
"id": 269567252
},
"duration": 10
}
在本接口中,关键字和其他参数在同一层,请注意
更多例子参阅 这里
- 描述:添加一个图形并且返回 omen_id
参数 | 类型 | 描述 |
---|---|---|
shape |
number |
图形的形状,高十六位为类型,低十六位为参数(后详) |
scale |
number[3] |
图形的比例,对应[东西刻度,上下刻度,南北刻度] |
shape_scale |
(number, number[3]) |
一般用于使用特殊值(后详),为形状、比例的二元组,当存在时忽略 shape 和 scale 参数 |
surface |
number[3] /number[4] |
填充颜色的rgba值,如果输入长度为3,默认alpha为1 |
line |
number[3] /number[4] |
线条颜色的rgba值,如果输入长度为3,默认alpha为1 |
line_width |
number |
线条宽度,默认为3 |
color |
string /number[3] /number[4] |
输入为 string 时会套用预设配色(后详),否则等同于surface 参数,当存在时忽略 surface 和 line 参数 |
pos |
number[3] |
图像在游戏3d空间里面的位置,对应 [东西刻度,上下刻度,南北刻度] |
facing |
number |
图像沿着y轴的旋转量,以rad为单位 |
duration |
number |
图像的存活时间,空则一直存在需要手动清除 |
label |
string |
在指定位置显示的文字 |
label_color |
number[3] |
显示文字的颜色 |
label_scale |
number |
显示文字的比例 |
label_at |
number |
显示文字的相对坐标的位置(参见这里) |
- 描述:添加一个线条 omen_id
参数 | 类型 | 描述 |
---|---|---|
src |
number[3] |
线条的来源 |
dst |
number[3] |
线条的目标 |
width |
number |
线条粗幼,默认3 |
color |
string /number[3] /number[4] |
线条颜色,输入为 string 时会套用预设配色 |
label |
string |
在指定位置显示的文字 |
label_color |
number[3] |
显示文字的颜色 |
label_scale |
number |
显示文字的比例 |
label_at |
number |
显示文字的相对坐标的位置 |
- 描述:删除指定图形
参数 | 类型 | 描述 |
---|---|---|
id |
number |
图形的omen_id,如果为-1则全部删除 |
- 描述:foreach(
values
asname
)func
()
参数 | 类型 | 描述 |
---|---|---|
values |
any[] |
变量的列表 |
name |
string |
变量赋值的名字 |
func |
指令 |
执行的指令 |
- 描述:设定变量列表并且运行
func
参数 | 类型 | 描述 |
---|---|---|
args |
map[str,any] |
变量的列表 |
func |
指令 |
执行的指令 |
关键字 | 描述 |
---|---|
enemy | 珊瑚色 |
g_enemy | 橘色 |
friend | 海水蓝 |
g_friend | 天蓝色 |
- 高十六位为类型,低十六位为参数
图形类型 | 参数 | 描述 |
---|---|---|
0x1 | 内圈比例 * 0xffff | 参数为空是普通圆形,否则月环,如果需要描述外圈 20 内圈 10 的月环,图形值为 0x10000|int((10/20)*0xffff) (scale为 [20,1,20] ) |
0x2 | 特殊值 | 矩形,参数为1时前后镜像,参数为2时,在1的基础上另外绘画一个90度旋转的矩形(交叉) |
0x5 | 角度(单位deg) | 扇形,如果需要角度为20的扇形,图形值为 0x50000|20 |
- 另有点线三角等图形参阅 这里
- 类型:
any
- 描述:设为创建时的数值,而不是即时数值
参数 | 类型 | 描述 |
---|---|---|
value | any |
变量表达式 |
- 类型:
any
- 描述:获取
foreach
赋值的变量
参数 | 类型 | 描述 |
---|---|---|
name | string |
获取变量的名字 |
- 类型:
number
- 描述:当前图形的剩余时间
参数 | 类型 | 描述 |
---|---|---|
- | - | - |
- 类型:
number
- 描述:当前图形的进度,为 0-1 之间的值
参数 | 类型 | 描述 |
---|---|---|
- | - | - |
- 类型:
1/0
- 描述:当前图形是否在xz轴上覆盖某个坐标
参数 | 类型 | 描述 |
---|---|---|
pos | number[3] |
查询坐标 |
- 类型:
number
- 描述:当前图形覆盖了多少个actor
参数 | 类型 | 描述 |
---|---|---|
ids | number[] |
actor id 列表 |
- 类型:
any
- 描述:输入python表达式并获取返回 (本特殊值未来可能因为安全原因弃用,请避免使用)
参数 | 类型 | 描述 |
---|---|---|
code | string |
python表达式 |
args | map[str,any] |
表达式用到的变量 |
- 类型:
number[3]
- 描述:返回对应实体的位置
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型:
number
- 描述:返回对应实体的面向
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型:
1/0
- 描述:返回角色是否拥有某状态
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
status_id | number | 状态id |
source_id | number | 来源id,可选 |
- 类型:
number
- 描述:返回角色某状态的剩余时间,无则为0
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
status_id | number | 状态id |
source_id | number | 来源id,可选 |
- 类型:
number
- 描述:返回角色某状态的参数,无则为0
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
status_id | number | 状态id |
source_id | number | 来源id,可选 |
- 类型:
number
- 描述:返回角色某状态的来源id,无则为0
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
status_id | number | 状态id |
- 类型:
1/0
- 描述:该id对应的实体是否存在
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型:
1/0
- 描述:该id对应的实体是否能被选中
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型:
1/0
- 描述:该id对应的实体是否可见
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型: number
- 描述:两个实体之间的距离
参数 | 类型 | 描述 |
---|---|---|
a1 | number | 实体a的id |
a2 | number | 实体b的id |
- 类型: number
- 描述:根据与某实体的距离排序所有玩家并返回指定index的角色id(可能造成性能负担,谨慎使用)
参数 | 类型 | 描述 |
---|---|---|
src | number | 指定实体的id |
idx | number | 查询index |
- 类型: number
- 描述:src实体看向dst实体时的面向
参数 | 类型 | 描述 |
---|---|---|
src | number | 来源实体的id |
dst | number | 目标实体的id |
- 类型: number
- 描述:当前操作角色的id
参数 | 类型 | 描述 |
---|---|---|
- | - | - |
- 类型: number
- 描述:指定实体的目标id
参数 | 类型 | 描述 |
---|---|---|
id | number | 实体id |
- 类型: any
- 描述:尝试返回
expr
值,如果出现任意错误则返回default
值
参数 | 类型 | 描述 |
---|---|---|
expr | any | 表达式 |
default | any | 默认值 |
- 类型: any
- 描述:如果
cond!=0
,返回true
,否则返回false
参数 | 类型 | 描述 |
---|---|---|
cond | any | 判断式 |
true | any | 真值 |
false | any | 假值 |
- 类型:
1/0
- 描述:等价
v1 > v2
参数 | 类型 | 描述 |
---|---|---|
v1 | any | 数值1 |
v2 | any | 数值2 |
- 类型:
1/0
- 描述:等价
v1 < v2
参数 | 类型 | 描述 |
---|---|---|
v1 | any | 数值1 |
v2 | any | 数值2 |
- 类型:
1/0
- 描述:等价
v1 >= v2
参数 | 类型 | 描述 |
---|---|---|
v1 | any | 数值1 |
v2 | any | 数值2 |
- 类型:
1/0
- 描述:等价
v1 <= v2
参数 | 类型 | 描述 |
---|---|---|
v1 | any | 数值1 |
v2 | any | 数值2 |
- 类型:
number
- 描述:返回
values
的总和(可以用于相加2/3/4元组)
参数 | 类型 | 描述 |
---|---|---|
values | number[] | 数值 |
- 类型:
number
- 描述:返回
values
的总乘
参数 | 类型 | 描述 |
---|---|---|
values | number[] | 数值 |
- 类型:
number
- 描述:返回
values
的总除
参数 | 类型 | 描述 |
---|---|---|
values | number[] | 数值 |
- 类型:
number
- 描述:返回
values
的最小值
参数 | 类型 | 描述 |
---|---|---|
values | number[] | 数值 |
- 类型:
number
- 描述:返回
values
的最大值
参数 | 类型 | 描述 |
---|---|---|
values | number[] | 数值 |
- 类型:
string
- 描述:
format
.format(*args
)
参数 | 类型 | 描述 |
---|---|---|
format | string | 格式 |
args | any[] | 数值 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述圆形
参数 | 类型 | 描述 |
---|---|---|
range | number | 半径 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述扇形
参数 | 类型 | 描述 |
---|---|---|
deg | number | 扇形角度 |
range | number | 半径 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述环形
参数 | 类型 | 描述 |
---|---|---|
inner | number | 内圈半径 |
range | number | 外圈半径 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述矩形
参数 | 类型 | 描述 |
---|---|---|
width | number | 宽度 |
range | number | 长度 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述十字
参数 | 类型 | 描述 |
---|---|---|
width | number | 宽度 |
range | number | 长度 |
- 类型:
(number, number[3])
- 描述:用于
shape_scale
的特殊值,表述某技能的形状(本接口无法判断扇形角度及月环内圈,统一输出90度扇形和50%月环)
参数 | 类型 | 描述 |
---|---|---|
id | number | 技能id |
- 类型:
None
- 描述:用于
shape_scale
或shape
的特殊值,会返回0并将omen销毁
参数 | 类型 | 描述 |
---|---|---|
- | - | - |
- 类型:
number[]
- 描述:返回符合 actor_type 的 id 列表
参数 | 类型 | 描述 |
---|---|---|
type | number | 1:玩家,2:战斗npc,3:事件npc |
- 类型:
number[]
- 描述:返回符合 base_id 的 id 列表
参数 | 类型 | 描述 |
---|---|---|
id | number | base_id |
- 类型:
number[]
- 描述:返回队伍中所有人的id
参数 | 类型 | 描述 |
---|---|---|
- | - | - |
- 类型:
number
- 描述:返回pi的倍数
参数 | 类型 | 描述 |
---|---|---|
val | number | 返回的倍数 |
- 类型:
number
- 描述:在rad和deg间转换
参数 | 类型 | 描述 |
---|---|---|
rad | number | 优先判断,将rad转换为deg |
deg | number | 如果rad为空,将deg转换为rad |
- 编写python模块置于plugins文件夹中,会自动导入
update(main:FFDraw)->any
每帧调用,一般用于直接调用gui进行绘制process_command(command:dict)->bool
httpapi在找不到指令cmd时调用,返回true为已处理