From 663277a990ed8557ff0624f1ec57ee2a0695a002 Mon Sep 17 00:00:00 2001 From: haokaiyang Date: Thu, 2 Jan 2025 11:55:57 +0800 Subject: [PATCH 1/2] auto tcg: update character card config to v5.3 --- .../Assets/tcg_character_card.json | 276 +++++++++++++----- 1 file changed, 207 insertions(+), 69 deletions(-) diff --git a/BetterGenshinImpact/GameTask/AutoGeniusInvokation/Assets/tcg_character_card.json b/BetterGenshinImpact/GameTask/AutoGeniusInvokation/Assets/tcg_character_card.json index f3ca531d..ec93435d 100644 --- a/BetterGenshinImpact/GameTask/AutoGeniusInvokation/Assets/tcg_character_card.json +++ b/BetterGenshinImpact/GameTask/AutoGeniusInvokation/Assets/tcg_character_card.json @@ -1787,6 +1787,75 @@ } ] }, + { + "id": 1214, + "nameEn": "mualani", + "type": "character", + "name": "玛拉妮", + "hp": 10, + "energy": 2, + "element": "水元素", + "weapon": "法器", + "skills": [ + { + "nameEn": "cooling_treatment", + "name": "降温处理", + "skillTag": [ + "普通攻击" + ], + "cost": [ + { + "id": 1102, + "nameEn": "hydro", + "type": "水元素", + "count": 1 + }, + { + "id": 1109, + "nameEn": "unaligned_element", + "type": "无色元素", + "count": 2 + } + ] + }, + { + "nameEn": "surfshark_wavebreaker", + "name": "踏鲨破浪", + "skillTag": [ + "元素战技" + ], + "cost": [ + { + "id": 1102, + "nameEn": "hydro", + "type": "水元素", + "count": 2 + } + ] + }, + { + "nameEn": "boomsharkalaka", + "name": "爆瀑飞弹", + "skillTag": [ + "元素爆发" + ], + "cost": [ + { + "id": 1102, + "nameEn": "hydro", + "type": "水元素", + "count": 3 + }, + { + "id": 1110, + "nameEn": "energy", + "type": "充能", + "count": 2 + } + ] + } + ] + }, { "id": 1301, "nameEn": "diluc", @@ -3482,6 +3551,75 @@ } ] }, + { + "id": 1412, + "nameEn": "clorinde", + "type": "character", + "name": "克洛琳德", + "hp": 10, + "energy": 2, + "element": "雷元素", + "weapon": "单手剑", + "skills": [ + { + "nameEn": "oath_of_hunting_shadows", + "name": "逐影之誓", + "skillTag": [ + "普通攻击" + ], + "cost": [ + { + "id": 1104, + "nameEn": "electro", + "type": "雷元素", + "count": 1 + }, + { + "id": 1109, + "nameEn": "unaligned_element", + "type": "无色元素", + "count": 2 + } + ] + }, + { + "nameEn": "hunters_vigil", + "name": "狩夜之巡", + "skillTag": [ + "元素战技" + ], + "cost": [ + { + "id": 1104, + "nameEn": "electro", + "type": "雷元素", + "count": 2 + } + ] + }, + { + "nameEn": "last_lightfall", + "name": "残光将终", + "skillTag": [ + "元素爆发" + ], + "cost": [ + { + "id": 1104, + "nameEn": "electro", + "type": "雷元素", + "count": 3 + }, + { + "id": 1110, + "nameEn": "energy", + "type": "充能", + "count": 2 + } + ] + } + ] + }, { "id": 1501, "nameEn": "sucrose", @@ -7220,6 +7358,75 @@ } ] }, + { + "id": 2603, + "nameEn": "golden_wolflord", + "type": "character", + "name": "黄金王兽", + "hp": 10, + "energy": 2, + "element": "岩元素", + "weapon": "其他武器", + "skills": [ + { + "nameEn": "wolflords_strike", + "name": "王狼直击", + "skillTag": [ + "普通攻击" + ], + "cost": [ + { + "id": 1106, + "nameEn": "geo", + "type": "岩元素", + "count": 1 + }, + { + "id": 1109, + "nameEn": "unaligned_element", + "type": "无色元素", + "count": 2 + } + ] + }, + { + "nameEn": "howling_riftcall", + "name": "兽境轰召", + "skillTag": [ + "元素战技" + ], + "cost": [ + { + "id": 1106, + "nameEn": "geo", + "type": "岩元素", + "count": 3 + } + ] + }, + { + "nameEn": "golden_cankerbind", + "name": "黄金侵绞", + "skillTag": [ + "元素爆发" + ], + "cost": [ + { + "id": 1106, + "nameEn": "geo", + "type": "岩元素", + "count": 3 + }, + { + "id": 1110, + "nameEn": "energy", + "type": "充能", + "count": 2 + } + ] + } + ] + }, { "id": 2701, "nameEn": "jadeplume_terrorshroom", @@ -7450,74 +7657,5 @@ "cost": [] } ] - }, - { - "id": 4608, - "nameEn": "golden_wolflord", - "type": "character", - "name": "黄金王兽", - "hp": 40, - "energy": 2, - "element": "岩元素", - "weapon": "其他武器", - "skills": [ - { - "nameEn": "wolflords_strike", - "name": "王狼直击", - "skillTag": [ - "普通攻击" - ], - "cost": [ - { - "id": 1106, - "nameEn": "geo", - "type": "岩元素", - "count": 1 - }, - { - "id": 1109, - "nameEn": "unaligned_element", - "type": "无色元素", - "count": 2 - } - ] - }, - { - "nameEn": "howling_riftcall", - "name": "兽境轰召", - "skillTag": [ - "元素战技" - ], - "cost": [ - { - "id": 1106, - "nameEn": "geo", - "type": "岩元素", - "count": 3 - } - ] - }, - { - "nameEn": "golden_cankerbind", - "name": "黄金侵绞", - "skillTag": [ - "元素爆发" - ], - "cost": [ - { - "id": 1106, - "nameEn": "geo", - "type": "岩元素", - "count": 3 - }, - { - "id": 1110, - "nameEn": "energy", - "type": "充能", - "count": 2 - } - ] - } - ] } ] \ No newline at end of file From c80799cbeeb3a45703f4b5d219971a52f80ecafd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Thu, 2 Jan 2025 22:49:38 +0800 Subject: [PATCH 2/2] 0.39.1 & fix some bug --- .../BetterGenshinImpact.csproj | 2 +- .../GameTask/AutoDomain/AutoDomainTask.cs | 22 ++++++++-------- .../GameTask/AutoMusicGame/AutoAlbumTask.cs | 25 ++++++++++++------- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/BetterGenshinImpact/BetterGenshinImpact.csproj b/BetterGenshinImpact/BetterGenshinImpact.csproj index dd2507d0..fd54e030 100644 --- a/BetterGenshinImpact/BetterGenshinImpact.csproj +++ b/BetterGenshinImpact/BetterGenshinImpact.csproj @@ -10,7 +10,7 @@ true Assets\Images\logo.ico BetterGI - 0.39.0 + 0.39.1 x64 embedded diff --git a/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs b/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs index 1575f1fd..75065796 100644 --- a/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs +++ b/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs @@ -117,13 +117,13 @@ public class AutoDomainTask : ISoloTask var combatScenes = new CombatScenes().InitializeTeam(CaptureToRectArea()); // 前置进入秘境 - EnterDomain(); + await EnterDomain(); for (var i = 0; i < _taskParam.DomainRoundNum; i++) { // 0. 关闭秘境提示 Logger.LogDebug("0. 关闭秘境提示"); - CloseDomainTip(); + await CloseDomainTip(); // 队伍没初始化成功则重试 RetryTeamInit(combatScenes); @@ -249,7 +249,7 @@ public class AutoDomainTask : ISoloTask Thread.Sleep(3000); Simulation.SendInput.Keyboard.KeyUp(VK.VK_W); } - + await Delay(3000, _ct); // 站稳 } else @@ -277,7 +277,7 @@ public class AutoDomainTask : ISoloTask return true; } - private void EnterDomain() + private async Task EnterDomain() { var fightAssets = AutoFightContext.Instance.FightAssets; @@ -288,7 +288,7 @@ public class AutoDomainTask : ISoloTask Simulation.SendInput.Keyboard.KeyPress(VK.VK_F); Logger.LogInformation("自动秘境:{Text}", "进入秘境"); // 秘境开门动画 5s - Sleep(5000, _ct); + await Delay(5000, _ct); } int retryTimes = 0, clickCount = 0; @@ -302,14 +302,14 @@ public class AutoDomainTask : ISoloTask clickCount++; } - Sleep(1500, _ct); + await Delay(1500, _ct); } // 载入动画 - Sleep(3000, _ct); + await Delay(3000, _ct); } - private void CloseDomainTip() + private async Task CloseDomainTip() { // 2min的载入时间总够了吧 var retryTimes = 0; @@ -319,16 +319,16 @@ public class AutoDomainTask : ISoloTask using var cactRectArea = CaptureToRectArea().Find(AutoFightContext.Instance.FightAssets.ClickAnyCloseTipRa); if (!cactRectArea.IsEmpty()) { - Sleep(1000, _ct); + await Delay(1000, _ct); cactRectArea.Click(); break; } // todo 添加小地图角标位置检测 防止有人手点了 - Sleep(1000, _ct); + await Delay(1000, _ct); } - Sleep(1500, _ct); + await Delay(1500, _ct); } private List FindCombatScriptAndSwitchAvatar(CombatScenes combatScenes) diff --git a/BetterGenshinImpact/GameTask/AutoMusicGame/AutoAlbumTask.cs b/BetterGenshinImpact/GameTask/AutoMusicGame/AutoAlbumTask.cs index 9d309217..d025dde7 100644 --- a/BetterGenshinImpact/GameTask/AutoMusicGame/AutoAlbumTask.cs +++ b/BetterGenshinImpact/GameTask/AutoMusicGame/AutoAlbumTask.cs @@ -34,25 +34,27 @@ public class AutoAlbumTask(AutoMusicGameParam taskParam) : ISoloTask public async Task StartOneAlbum(CancellationToken ct) { + using var iconRa = CaptureToRectArea().Find(AutoMusicAssets.Instance.UiLeftTopAlbumIcon); + if (!iconRa.IsExist()) + { + throw new Exception("当前未处于专辑界面,请在专辑界面运行本任务"); + } + // 12个音乐 for (int i = 0; i < 13; i++) { - using var iconRa = CaptureToRectArea().Find(AutoMusicAssets.Instance.UiLeftTopAlbumIcon); - if (!iconRa.IsExist()) - { - throw new Exception("当前未处于专辑界面,请在专辑界面运行本任务"); - } + using var doneRa = CaptureToRectArea().Find(AutoMusicAssets.Instance.AlbumMusicComplate); if (doneRa.IsExist()) { - Logger.LogInformation("当前音乐{Num}所有奖励已领取,切换下一首", i + 1); + Logger.LogInformation("当前乐曲{Num}所有奖励已领取,切换下一首", i + 1); GameCaptureRegion.GameRegion1080PPosClick(310, 220); await Delay(800, ct); continue; } - Logger.LogInformation("当前音乐{Num}存在未领取奖励,前往演奏", i + 1); + Logger.LogInformation("当前乐曲{Num}存在未领取奖励,前往演奏", i + 1); Bv.ClickWhiteConfirmButton(CaptureToRectArea()); await Delay(800, ct); // 点击传说 @@ -86,10 +88,15 @@ public class AutoAlbumTask(AutoMusicGameParam taskParam) : ISoloTask // 等待任意一个任务完成 await Task.WhenAny(checkTask, musicTask); await cts.CancelAsync(); - Logger.LogInformation("当前音乐{Num}演奏结束", i + 1); + Logger.LogInformation("当前乐曲{Num}演奏结束", i + 1); await Delay(2000, ct); + + await Bv.WaitUntilFound(AutoMusicAssets.Instance.UiLeftTopAlbumIcon, ct); + Logger.LogInformation("切换下一首"); + GameCaptureRegion.GameRegion1080PPosClick(310, 220); + await Delay(800, ct); } - Logger.LogInformation("当前专辑所有音乐演奏结束"); + Logger.LogInformation("当前专辑所有乐曲演奏结束"); } } \ No newline at end of file