mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-24 04:49:51 +08:00
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:
@@ -56,6 +56,8 @@
|
||||
您需要注意的是,为了简化处理逻辑,转谱工具对mid文件的内容作了一些限制,比如不能使用异步多轨的格式,必须是C大调,导出midi文件时不要包含RPN和NRPN相关指令等等,更详细的会在之后用视频教程进行演示,普通用户完全不了解这些内容也不影响使用。
|
||||
|
||||
## 更新日志
|
||||
v1.0.2 演奏开始后,自动将鼠标移动到右下角;增加乐器界面判定,只有在乐器演奏界面才会演奏曲谱;新增曲谱文件“此去半生”。
|
||||
|
||||
v1.0.1 修复音符B5的按键映射错误;修复脚本中止时,按键没有释放的问题;新增曲谱文件“枕边童话”“丝柯克小曲”;新增曲谱制作教程视频地址。
|
||||
|
||||
v1.0.0 发布原琴助手BGI版。
|
||||
BIN
repo/js/YuanQinAssistant/assets/image/mouse.png
Normal file
BIN
repo/js/YuanQinAssistant/assets/image/mouse.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
9
repo/js/YuanQinAssistant/assets/score/此去半生(跃律琴-降半音).gs2
Normal file
9
repo/js/YuanQinAssistant/assets/score/此去半生(跃律琴-降半音).gs2
Normal file
File diff suppressed because one or more lines are too long
@@ -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}`);
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"options": [
|
||||
"丝柯克小曲",
|
||||
"枕边童话(诗琴)",
|
||||
"此去半生(跃律琴-降半音)",
|
||||
"银月之庭(蓝花)C大调"
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user