feat: pv 小游戏 (#14885)
* feat: pv 小游戏架子 * chore: Auto update by pre-commit hooks [skip changelog] * feat: 1-5 关 * chore: Auto update by pre-commit hooks [skip changelog] * feat: PV 小游戏 06-15 (#14888) * feat: 06-15 * fix: 15 * fix: templates and threshold * chore: Auto update by pre-commit hooks [skip changelog] --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: Auto update by pre-commit hooks [skip changelog] * feat: 小游戏 16-20 * fix: 18-20 导航 * chore: Auto update by pre-commit hooks [skip changelog] * feat: 添加 ui 入口 * fix: 全角数字 --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: 不留 <weinibuliu@outlook.com>
420
resource/tasks/MiniGame/PV-Reproduction.json
Normal file
@@ -0,0 +1,420 @@
|
||||
{
|
||||
"MiniGame@PV@Begin": {
|
||||
"algorithm": "JustReturn",
|
||||
"next": ["MiniGame@PV@01"]
|
||||
},
|
||||
"MiniGame@PV@01": {
|
||||
"action": "ClickSelf",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"maskRange": [0, 70],
|
||||
"roi": [0, 350, 1280, 50],
|
||||
"next": ["MiniGame@PV@02"]
|
||||
},
|
||||
"MiniGame@PV@02": {
|
||||
"baseTask": "MiniGame@PV@01",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 620, 1280, 50],
|
||||
"next": ["MiniGame@PV@03"]
|
||||
},
|
||||
"MiniGame@PV@03": {
|
||||
"baseTask": "MiniGame@PV@01",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 330, 1280, 50],
|
||||
"next": ["MiniGame@PV@04"]
|
||||
},
|
||||
"MiniGame@PV@04": {
|
||||
"baseTask": "MiniGame@PV@01",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter3-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 580, 1280, 50],
|
||||
"next": ["MiniGame@PV@05"]
|
||||
},
|
||||
"MiniGame@PV@05": {
|
||||
"baseTask": "MiniGame@PV@01",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 460, 1280, 50],
|
||||
"next": ["MiniGame@PV@06"]
|
||||
},
|
||||
"MiniGame@PV@06": {
|
||||
"action": "ClickSelf",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"maskRange": [90, 140],
|
||||
"rectMove": [0, -50, 10, 10],
|
||||
"roi": [0, 450, 1280, 50],
|
||||
"next": ["MiniGame@PV@07"]
|
||||
},
|
||||
"MiniGame@PV@07": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 230, 1280, 50],
|
||||
"next": ["MiniGame@PV@08"]
|
||||
},
|
||||
"MiniGame@PV@08": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 380, 1280, 50],
|
||||
"next": ["MiniGame@PV@09"]
|
||||
},
|
||||
"MiniGame@PV@09": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 520, 1280, 50],
|
||||
"next": ["MiniGame@PV@10"]
|
||||
},
|
||||
"MiniGame@PV@10": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 670, 1280, 50],
|
||||
"next": ["MiniGame@PV@11"]
|
||||
},
|
||||
"MiniGame@PV@11": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 590, 1280, 50],
|
||||
"next": ["MiniGame@PV@12"]
|
||||
},
|
||||
"MiniGame@PV@12": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 670, 1280, 50],
|
||||
"next": ["MiniGame@PV@13"]
|
||||
},
|
||||
"MiniGame@PV@13": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 520, 1280, 50],
|
||||
"next": ["MiniGame@PV@14"]
|
||||
},
|
||||
"MiniGame@PV@14": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 380, 1280, 50],
|
||||
"next": ["MiniGame@PV@15"]
|
||||
},
|
||||
"MiniGame@PV@15": {
|
||||
"action": "ClickSelf",
|
||||
"template": "MiniGame@PV@11.png",
|
||||
"rectMove": [0, -350, 10, 10],
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 590, 1280, 50],
|
||||
"next": ["MiniGame@PV@16"]
|
||||
},
|
||||
"MiniGame@PV@16": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 230, 1280, 50],
|
||||
"next": ["MiniGame@PV@17"]
|
||||
},
|
||||
"MiniGame@PV@17": {
|
||||
"baseTask": "MiniGame@PV@06",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm",
|
||||
"SwipeToTheRight"
|
||||
],
|
||||
"roi": [0, 450, 1280, 50],
|
||||
"postDelay": 500,
|
||||
"next": ["MiniGame@PV@18"]
|
||||
},
|
||||
"MiniGame@PV@18": {
|
||||
"baseTask": "MiniGame@PV@20",
|
||||
"template": "MiniGame@PV@20.png",
|
||||
"rectMove": [-250, -350, 10, 10],
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"next": ["MiniGame@PV@19"]
|
||||
},
|
||||
"MiniGame@PV@19": {
|
||||
"action": "ClickSelf",
|
||||
"template": "MiniGame@PV@20.png",
|
||||
"rectMove": [-250, -100, 10, 10],
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Options-4",
|
||||
"MiniGame@PV@Filter2-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"next": ["MiniGame@PV@20"]
|
||||
},
|
||||
"MiniGame@PV@20": {
|
||||
"baseTask": "MiniGame@PV@01",
|
||||
"sub": [
|
||||
"MiniGame@PV@Filter1-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter2-1",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter3-1",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Filter1-2",
|
||||
"MiniGame@PV@Options-3",
|
||||
"MiniGame@PV@Filter3-2",
|
||||
"MiniGame@PV@Options-1",
|
||||
"MiniGame@PV@Options-2",
|
||||
"MiniGame@PV@Confirm"
|
||||
],
|
||||
"roi": [0, 630, 1280, 50],
|
||||
"next": []
|
||||
},
|
||||
"MiniGame@PV@Filter1-1": {
|
||||
"algorithm": "JustReturn",
|
||||
"action": "ClickRect",
|
||||
"specificRect": [1025, 93, 16, 16],
|
||||
"preDelay": 500,
|
||||
"postDelay": 500
|
||||
},
|
||||
"MiniGame@PV@Filter1-2": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1177, 98, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter2-1": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1020, 225, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter2-2": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1179, 230, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter3-1": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1011, 359, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter3-2": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1160, 363, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter4-1": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1010, 476, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Filter4-2": {
|
||||
"baseTask": "MiniGame@PV@Filter1-1",
|
||||
"specificRect": [1143, 478, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Options-1": {
|
||||
"algorithm": "JustReturn",
|
||||
"action": "ClickRect",
|
||||
"specificRect": [866, 143, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Options-2": {
|
||||
"baseTask": "MiniGame@PV@Options-1",
|
||||
"specificRect": [860, 269, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Options-3": {
|
||||
"baseTask": "MiniGame@PV@Options-1",
|
||||
"specificRect": [854, 392, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Options-4": {
|
||||
"baseTask": "MiniGame@PV@Options-1",
|
||||
"specificRect": [846, 517, 16, 16]
|
||||
},
|
||||
"MiniGame@PV@Confirm": {
|
||||
"action": "ClickSelf",
|
||||
"roi": [1053, 588, 205, 132],
|
||||
"preDelay": 500,
|
||||
"postDelay": 1000,
|
||||
"reduceOtherTimes": ["MiniGame@PV@ClickToMainInterface*20"],
|
||||
"next": ["MiniGame@PV@ClickToMainInterface"]
|
||||
},
|
||||
"MiniGame@PV@ClickToMainInterface": {
|
||||
"algorithm": "JustReturn",
|
||||
"action": "ClickRect",
|
||||
"specificRect": [640, 10, 1, 1],
|
||||
"maxTimes": 20,
|
||||
"next": ["MiniGame@PV@MainInterface", "MiniGame@PV@ClickToMainInterface"]
|
||||
},
|
||||
"MiniGame@PV@MainInterface": {
|
||||
"roi": [0, 270, 339, 159],
|
||||
"next": ["Stop"]
|
||||
}
|
||||
}
|
||||
77
resource/tasks/MiniGame/PV-Reproduction.py
Normal file
@@ -0,0 +1,77 @@
|
||||
import re
|
||||
|
||||
# 攻略:https://www.bilibili.com/video/BV16NSZYbE85/
|
||||
# 视频格式:左1-1 2-3 3-1 右1-3 3-1 3-2
|
||||
# MAA 内部格式:
|
||||
# MiniGame@PV@Filter1-1 (左1-)
|
||||
# MiniGame@PV@Options-1 (-1)
|
||||
# 映射:左/右 → Filter 的第二位
|
||||
side_map = {"左": "1", "右": "2"}
|
||||
|
||||
|
||||
def convert_steps(text):
|
||||
parts = text.split()
|
||||
result = []
|
||||
|
||||
current_filter = None
|
||||
current_side = None
|
||||
|
||||
for part in parts:
|
||||
# 判断是否带 左/右
|
||||
m = re.match(r"(左|右)?(\d+)-(\d+)", part)
|
||||
if not m:
|
||||
continue
|
||||
|
||||
side, group, option = m.groups()
|
||||
|
||||
# 如果没有写左/右,则沿用前一次
|
||||
if side is None:
|
||||
side = current_side
|
||||
|
||||
filter_id = f"Filter{group}-{side_map[side]}"
|
||||
option_id = f"Options-{option}"
|
||||
|
||||
# 如果 Filter 改变了,先写 Filter
|
||||
if filter_id != current_filter:
|
||||
result.append(f"MiniGame@PV@{filter_id}")
|
||||
current_filter = filter_id
|
||||
current_side = side
|
||||
|
||||
# 再写 Options
|
||||
result.append(f"MiniGame@PV@{option_id}")
|
||||
|
||||
result.append("MiniGame@PV@Confirm")
|
||||
return result
|
||||
|
||||
|
||||
texts = [
|
||||
"左1-4 2-2 右1-2 1-4 2-1 2-2",
|
||||
"左1-1 2-3 右2-2 2-4",
|
||||
"左1-2 1-4 2-1 3-2 右2-2",
|
||||
"左1-4 3-2 右1-3 3-4",
|
||||
"左1-1 1-3 2-1 2-3 右2-1 2-2",
|
||||
"左1-2 1-4 2-2 2-3 右1-3 2-2",
|
||||
"左1-1 1-3 2-3 右1-3 2-1",
|
||||
"左1-2 1-4 2-1 3-1 右1-2",
|
||||
"左1-4 2-2 3-3 右1-3 2-3",
|
||||
"左1-1 1-4 2-3 右1-1 1-2 2-2",
|
||||
"左1-2 2-3 3-2 右1-1",
|
||||
"左2-2 2-4 右1-1 2-3",
|
||||
"右1-1 2-2 2-4",
|
||||
"左1-1 2-4 右1-2 2-4",
|
||||
"左1-2 1-4 右1-2 1-4 2-1",
|
||||
"左2-2 3-2 3-4 右1-1 1-3 2-2",
|
||||
"左1-4 2-1 3-1 3-3 右1-2",
|
||||
"左2-1 3-1 右1-2 1-4 2-2",
|
||||
"左1-2 1-4 3-2 3-4 右2-1",
|
||||
"左1-1 2-3 3-1 右1-3 3-1 3-2",
|
||||
]
|
||||
|
||||
for idx, text in enumerate(texts):
|
||||
print(f"\n// 第 {idx + 1} 行: {text}")
|
||||
converted = convert_steps(text)
|
||||
print('"sub": [')
|
||||
for i, line in enumerate(converted):
|
||||
comma = "," if i < len(converted) - 1 else ""
|
||||
print(f' "{line}"{comma}')
|
||||
print(" ],")
|
||||
BIN
resource/template/MiniGame/PV/MiniGame@PV@01.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@02.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@03.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@04.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@05.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@06.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@07.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@08.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@09.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@10.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@11.png
Normal file
|
After Width: | Height: | Size: 796 B |
BIN
resource/template/MiniGame/PV/MiniGame@PV@12.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@13.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@14.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@16.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@17.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@20.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@Confirm.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
resource/template/MiniGame/PV/MiniGame@PV@MainInterface.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
@@ -795,6 +795,8 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla
|
||||
<!-- !Peep -->
|
||||
<!-- 小游戏 -->
|
||||
<system:String x:Key="MiniGameName">Mini Game Name</system:String>
|
||||
<system:String x:Key="MiniGame@PV">PV - Fireworks Organizing Committee</system:String>
|
||||
<system:String x:Key="MiniGame@PVTip" xml:space="preserve">Start from the leftmost side of the event page</system:String>
|
||||
<system:String x:Key="MiniGame@SPA">Stronghold Protocol: Alliance</system:String>
|
||||
<system:String x:Key="MiniGame@SPATip" xml:space="preserve">Start the task from the main event screen (where 「Independent Simulation」 is located)
|
||||
Completing 「Standard Simulation」 manually allows faster score farming
|
||||
|
||||
@@ -795,6 +795,8 @@ C:\\leidian\\LDPlayer9
|
||||
<!-- !Peep -->
|
||||
<!-- 小游戏 -->
|
||||
<system:String x:Key="MiniGameName">ミニゲーム名</system:String>
|
||||
<system:String x:Key="MiniGame@PV">PV-花火実行委員会</system:String>
|
||||
<system:String x:Key="MiniGame@PVTip" xml:space="preserve">イベントページの最左側から開始</system:String>
|
||||
<system:String x:Key="MiniGame@SPA">ガードプロトコル:盟約</system:String>
|
||||
<system:String x:Key="MiniGame@SPATip" xml:space="preserve">イベントメイン画面(「独立シミュレーション」の場所)からタスクを開始
|
||||
「スタンダードシミュレーション」を手動でクリアすると、より早くスコアを稼げます
|
||||
|
||||
@@ -796,6 +796,8 @@ C:\\leidian\\LDPlayer9
|
||||
<!-- !Peep -->
|
||||
<!-- 미니게임 -->
|
||||
<system:String x:Key="MiniGameName">미니 게임 이름</system:String>
|
||||
<system:String x:Key="MiniGame@PV">PV-불꽃놀이 집행위원회</system:String>
|
||||
<system:String x:Key="MiniGame@PVTip" xml:space="preserve">이벤트 페이지 가장 왼쪽에서 시작</system:String>
|
||||
<system:String x:Key="MiniGame@SPA">위수 협의: 맹약</system:String>
|
||||
<system:String x:Key="MiniGame@SPATip" xml:space="preserve">이벤트 메인 화면(「독립 시뮬레이션」 위치)에서 임무 시작
|
||||
「스탠다드 시뮬레이션」 을 수동으로 클리어하면 점수를 더 빠르게 획득할 수 있습니다
|
||||
|
||||
@@ -795,6 +795,8 @@ C:\\leidian\\LDPlayer9。\n
|
||||
<!-- !牛牛监控 -->
|
||||
<!-- 小游戏 -->
|
||||
<system:String x:Key="MiniGameName">小游戏名称</system:String>
|
||||
<system:String x:Key="MiniGame@PV">PV-烟花筹委会</system:String>
|
||||
<system:String x:Key="MiniGame@PVTip" xml:space="preserve">在活动页面最左侧开始</system:String>
|
||||
<system:String x:Key="MiniGame@SPA">卫戍协议:盟约</system:String>
|
||||
<system:String x:Key="MiniGame@SPATip" xml:space="preserve">在活动主界面(有 「独立模拟」 处开始任务)
|
||||
手动通关 「标准模拟」 可以更快的刷分
|
||||
|
||||
@@ -796,6 +796,8 @@ C:\\leidian\\LDPlayer9。\n
|
||||
<!-- !牛牛監控 -->
|
||||
<!-- 小游戏 -->
|
||||
<system:String x:Key="MiniGameName">小遊戲名稱</system:String>
|
||||
<system:String x:Key="MiniGame@PV">PV-煙花籌委會</system:String>
|
||||
<system:String x:Key="MiniGame@PVTip" xml:space="preserve">在活動頁面最左側開始</system:String>
|
||||
<system:String x:Key="MiniGame@SPA">衛戍協議:盟約</system:String>
|
||||
<system:String x:Key="MiniGame@SPATip" xml:space="preserve">在活動主界面(有「獨立模擬」處開始任務)
|
||||
手動通關「標準模擬」可以更快刷分
|
||||
|
||||
@@ -1241,6 +1241,7 @@ public class ToolboxViewModel : Screen
|
||||
new() { Display = LocalizationHelper.GetString("MiniGameNameRAStore"), Value = "RA@Store@Begin" },
|
||||
|
||||
// 活动
|
||||
new() { Display = LocalizationHelper.GetString("MiniGame@PV"), Value = "MiniGame@PV@Begin" },
|
||||
new() { Display = LocalizationHelper.GetString("MiniGame@SPA"), Value = "MiniGame@SPA@Begin" },
|
||||
new() { Display = LocalizationHelper.GetString("MiniGame@OS"), Value = "MiniGame@OS@Begin" },
|
||||
new() { Display = LocalizationHelper.GetString("MiniGame@RM-TR-1"), Value = "MiniGame@RM-TR-1@Begin" },
|
||||
@@ -1286,6 +1287,7 @@ public class ToolboxViewModel : Screen
|
||||
"RA@Store@Begin" => LocalizationHelper.GetString("MiniGameNameRAStoreTip"),
|
||||
|
||||
// 活动
|
||||
"MiniGame@PV@Begin" => LocalizationHelper.GetString("MiniGame@PVTip"),
|
||||
"MiniGame@SPA@Begin" => LocalizationHelper.GetString("MiniGame@SPATip"),
|
||||
"MiniGame@OS@Begin" => LocalizationHelper.GetString("MiniGame@OSTip"),
|
||||
"MiniGame@RM-TR-1@Begin" => LocalizationHelper.GetString("MiniGame@RM-TR-1Tip"),
|
||||
|
||||
@@ -2,6 +2,7 @@ import json
|
||||
from pathlib import Path
|
||||
|
||||
import cv2
|
||||
|
||||
from tools.ImageCropper.main import crop
|
||||
|
||||
"""
|
||||
|
||||