JS脚本:YuanQinAssistant 更新至 v1.0.2 (#2450)

* 创建image文件夹

* add ro template file -- mouse.png

* Delete repo/js/YuanQinAssistant/assets/image/placer.txt

* Add files via upload

* update YuanQinAssistant v1.0.2
This commit is contained in:
himno
2025-12-07 17:40:20 +08:00
committed by GitHub
parent 9b695ce82a
commit 9ee34fa389
6 changed files with 73 additions and 3 deletions

View File

@@ -56,6 +56,8 @@
您需要注意的是为了简化处理逻辑转谱工具对mid文件的内容作了一些限制比如不能使用异步多轨的格式必须是C大调导出midi文件时不要包含RPN和NRPN相关指令等等更详细的会在之后用视频教程进行演示普通用户完全不了解这些内容也不影响使用。
## 更新日志
v1.0.2 演奏开始后,自动将鼠标移动到右下角;增加乐器界面判定,只有在乐器演奏界面才会演奏曲谱;新增曲谱文件“此去半生”。
v1.0.1 修复音符B5的按键映射错误修复脚本中止时按键没有释放的问题新增曲谱文件“枕边童话”“丝柯克小曲”新增曲谱制作教程视频地址。
v1.0.0 发布原琴助手BGI版。

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,14 @@
[48, 'z'], [50, 'x'], [52, 'c'], [53, 'v'], [55, 'b'], [57, 'n'], [59, 'm'],
]);
const instrumentNames = ["风物之诗琴", "老旧的诗琴", "镜花之琴", "盛世豪鼓", "绮庭之鼓", "晚风圆号", "余音", "悠可琴", "跃律琴"];
const mouseRo = RecognitionObject.TemplateMatch(
file.ReadImageMatSync("assets/image/mouse.png"),
170, 20, 40, 55
);
/**
* 将音符编码转换为按键
* @param {number} noteCode 60表示C4音符
@@ -348,15 +356,64 @@
}
};
/**
* 获取乐器编号对应的乐器名称
* @param {number} instrumentCode
* @returns {string} 乐器名称
*/
function getInstrumentName(instrumentCode) {
const list = ["风物之诗琴", "老旧的诗琴", "镜花之琴", "盛世豪鼓", "绮庭之鼓", "晚风圆号", "余音", "悠可琴", "跃律琴"];
return list[instrumentCode] || "未知乐器";
return instrumentNames[instrumentCode] || "未知乐器";
}
/**
* 捕获游戏区域并查找指定模板,返回匹配结果对象
* @param {object} templateRo 模板识别对象
* @returns {object} 匹配结果对象
*/
function findInGameRegion(templateRo) {
try {
const gameRegion = captureGameRegion();
const result = gameRegion.find(templateRo);
gameRegion.dispose();
return result;
} catch (error) {
log.error(`findInGameRegion 出错: ${error.message}`);
}
return null;
}
/**
* 获取当前画面乐器的编号
* @returns {number} 若成功识别乐器界面,返回乐器编号,否则返回-1
*/
function getCurrentInstrumentCode() {
let result = -1;
const res = findInGameRegion(mouseRo);
if (res && res.isExist()) {
result = 0; // TODO: 后续根据不同乐器图标进行区分
res.dispose();
}
else {
log.warn('未检测到乐器界面,请切换到乐器界面后重新运行脚本\n如无法正确识别到乐器界面请反馈给作者');
}
return result;
}
//----------------------------------------------------------
async function main() {
if (!checkScoreSheet()) return;
// 移动鼠标到右下角
setGameMetrics(1920, 1080, 1);
moveMouseTo(1920, 1080);
await sleep(500);
// 检查是否在乐器界面
if (getCurrentInstrumentCode() < 0) {
return;
}
const scoreFilename = settings.music_selector;
if (!scoreFilename) {
log.warn('未选择曲谱请在js配置中选择后再次运行脚本');
@@ -368,6 +425,7 @@
log.warn('读取曲谱文件失败请在js配置中选择后尝试再次运行脚本');
return;
}
const instrumentName = getInstrumentName(scoreInfo.instrument);
log.info('当前演奏:' + scoreInfo.title);
log.info(`作曲人:${scoreInfo.composer},制谱人:${scoreInfo.arranger}`);

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "原琴助手",
"version": "1.0.1",
"version": "1.0.2",
"bgi_version": "0.43.1",
"description": "BetterGI版本的原琴助手使用gs2格式的琴谱",
"authors": [

View File

@@ -6,6 +6,7 @@
"options": [
"丝柯克小曲",
"枕边童话(诗琴)",
"此去半生(跃律琴-降半音)",
"银月之庭蓝花C大调"
]
},