-
-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathconfig.py
More file actions
150 lines (136 loc) · 7.22 KB
/
config.py
File metadata and controls
150 lines (136 loc) · 7.22 KB
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
import os
import numpy as np
from ok import ConfigOption
from src.interaction.EfInteraction import EfInteraction
from src.interaction.KeyConfig import DEFAULT_COMMON_KEYS, DEFAULT_INDUSTRY_KEYS, DEFAULT_COMBAT_KEYS
version = "dev"
# 不需要修改version, Github Action打包会自动修改
def make_bottom_left_black(frame): # 可选. 某些游戏截图时遮挡UID使用
"""
将图像左下角的一部分像素修改为黑色。
参数:
frame: 来自 OpenCV 的输入图像 (NumPy 数组)。
返回:
左下角被遮挡后的图像。如果发生错误(例如无效图像),则返回原始图像。
"""
try:
height, width = frame.shape[:2] # 获取高度和宽度
# 计算黑色矩形的大小
black_width = int(0.072 * width)
black_height = int(0.034 * height)
# 计算左下角矩形的起始坐标
start_x = int(0.054 * width)
start_y = height - black_height
# 创建黑色矩形 (NumPy 0 数组)
black_rect = np.zeros((black_height, black_width, frame.shape[2]), dtype=frame.dtype) # 确保数据类型一致
# 用黑色矩形替换图像的左下角部分
frame[start_y:height, start_x:start_x + black_width] = black_rect
return frame
except Exception as e:
print(f"Error processing frame: {e}")
return frame
key_config_option = ConfigOption('Game Hotkey Config', {
**DEFAULT_COMMON_KEYS, **DEFAULT_INDUSTRY_KEYS, **DEFAULT_COMBAT_KEYS
}, description='In Game Hotkey Config')
ensure_main_once_action_sleep_option = ConfigOption(
"Ensure Main Once Action Sleep", {"SingleActionWithDelay": 1.5}, description="Ensure Main Once Action Sleep"
)
config = {
"custom_tasks": True,
"debug": False, # Optional, default: False
"use_gui": True, # 目前只支持True
"config_folder": "configs", # 最好不要修改
"screenshot_processor": make_bottom_left_black, # 在截图的时候对frame进行修改, 可选
"gui_icon": "icons/icon.png", # 窗口图标, 最好不需要修改文件名
"global_configs": [key_config_option, ensure_main_once_action_sleep_option], # 全局配置项, 可选
"wait_until_before_delay": 0,
"wait_until_check_delay": 0,
"wait_until_settle_time": 0, # 调用 wait_until时候, 在第一次满足条件的时候, 会等待再次检测, 以避免某些滑动动画没到预定位置就在动画路径中被检测到
'ocr': {
'lib': 'onnxocr',
'params': {
'use_openvino': True,
'use_npu': True,
}
},
'template_tab': {
# 是否生成标签枚举
'generate_label_enum': True,
# 标签枚举的相对路径
'label_enum_relative_path': 'src/data/FeatureList',
},
"windows": { # Windows游戏请填写此设置
"exe": ["Endfield.exe"],
# 'hwnd_class': 'UnrealWindow', #增加重名检查准确度
# GUI 需要可迭代配置;设备管理器需要类对象,使用包装器同时满足两者。
"interaction": [EfInteraction],
# Genshin:某些操作可以后台, 部分游戏支持 PostMessage:可后台点击, 极少游戏支持 ForegroundPostMessage:前台使用PostMessage Pynput/PyDirect:仅支持前台使用
"capture_method": ["WGC", "BitBlt_RenderFull"],
# Windows版本支持的话, 优先使用WGC, 否则使用BitBlt_Full. 支持的capture有 BitBlt, WGC, BitBlt_RenderFull, DXGI
"check_hdr": False, # 当用户开启AutoHDR时候提示用户, 但不禁止使用
"force_no_hdr": False, # True=当用户开启AutoHDR时候禁止使用
"require_bg": True, # 要求使用后台截图
},
"start_timeout": 60, # default 60
"window_size": {"width": 1200, "height": 800, "min_width": 600, "min_height": 450}, # ok-script窗口大小
"supported_resolution": {
"ratio": "16:9", # 支持的游戏分辨率
"min_size": (1600, 900), # 支持的最低游戏分辨率
# 'resize_to': [(2560, 1440), (1920, 1080), (1600, 900), (1280, 720)], # 可选, 如果非16:9自动缩放为 resize_to
},
"links": { # 关于里显示的链接, 可选
"default": {
"github": "https://github.com/ok-oldking/ok-end-field",
"discord": "https://discord.gg/vVyCatEBgA",
"sponsor": "https://www.paypal.com/ncp/payment/JWQBH7JZKNGCQ",
"qq_group": "https://qm.qq.com/q/NcWHQU6q8k",
"share": "https://1drv.ms/f/c/0c7567d06cc5b5f3/IgAudOtrzHPVT6sJgWeWSiByAZNvwAzcehIdj3hEcprRlP0?e=nsEBmm",
"faq": "https://github.com/ok-oldking/ok-end-field",
"qq_channel": "https://pd.qq.com/s/djmm6l44y",
},
"zh_CN": {
"github": "https://github.com/ok-oldking/ok-end-field",
"discord": "https://discord.gg/vVyCatEBgA",
"sponsor": "https://afdian.com/a/AliceJump",
"share": "https://1drv.ms/f/c/0c7567d06cc5b5f3/IgAudOtrzHPVT6sJgWeWSiByAZNvwAzcehIdj3hEcprRlP0?e=nsEBmm",
"faq": "https://cnb.cool/ok-oldking/ok-ef-update/-/blob/main/README.md",
"qq_group": "https://qm.qq.com/q/NcWHQU6q8k",
"qq_channel": "https://pd.qq.com/s/djmm6l44y",
},
},
"screenshots_folder": "screenshots", # 截图存放目录, 每次重新启动会清空目录
"yolo": {"model_path": "assets/models/yolo/best.onnx"}, # YOLO 模型路径(相对项目根目录或绝对路径)
"gui_title": "ok-ef", # 窗口名
"template_matching": { # 可选, 如使用OpenCV的模板匹配
"coco_feature_json": os.path.join("assets", "coco_annotations.json"),
# coco格式标记, 需要png图片, 在debug模式运行后, 会对进行切图仅保留被标记部分以减少图片大小
"default_horizontal_variance": 0.002, # 默认x偏移, 查找不传box的时候, 会根据coco坐标, match偏移box内的
"default_vertical_variance": 0.002, # 默认y偏移
"default_threshold": 0.8, # 默认threshold
"hcenter_features": ["default_link_skill", "pick_f", "skip_dialog_confirm"],
"vcenter_features": ["default_link_skill", "skip_dialog_confirm"],
},
"version": version, # 版本
"my_app": ["src.globals", "Globals"], # 可选. 全局单例对象, 可以存放加载的模型, 使用og.my_app调用
"onetime_tasks": [ # 用户点击触发的任务
["src.tasks.DailyTask", "DailyTask"],
["src.tasks.TakeDeliveryTask", "TakeDeliveryTask"],
["src.tasks.WarehouseTransferTask", "WarehouseTransferTask"],
["src.tasks.DeliveryTask", "DeliveryTask"],
["src.tasks.EssenceScanTask", "EssenceScanTask"],
["src.tasks.BattleTask", "BattleTask"],
["src.tasks.PeriodicScreenshotTask", "PeriodicScreenshotTask"],
["src.tasks.TestStartGame", "TestStartGame"],
["src.tasks.Test", "Test"],
["ok.task.DiagnosisTask", "DiagnosisTask"],
],
"custom_tabs": [
["src.gui.AccountConfigTab", "AccountConfigTab"],
],
"trigger_tasks": [ # 不断执行的触发式任务
["src.tasks.AutoCombatTask", "AutoCombatTask"],
["src.tasks.AutoSkipDialogTask", "AutoSkipDialogTask"],
["src.tasks.AutoPickTask", "AutoPickTask"],
["src.tasks.AutoLoginTask", "AutoLoginTask"],
],
}