优化聚集材料命令/联机派遣修复 (#2374)

This commit is contained in:
kaedelcb
2025-10-22 01:31:31 +08:00
committed by GitHub
parent 6afbf06977
commit 438fa70d2c
2 changed files with 47 additions and 38 deletions

View File

@@ -27,8 +27,8 @@ public class PickUpCollectHandler : IActionHandler
[
"枫原万叶-长E keydown(E),wait(0.7),keyup(E),attack(0.2),wait(0.5)",
"枫原万叶-短E e,attack(0.15)",
"琴-短E keydown(E),wait(0.4),moveby(1000,0),wait(0.2),moveby(1000,0),wait(0.2),moveby(1000,0),wait(0.2),moveby(1000,-3500),wait(1.8),keyup(E),wait(0.3),click(middle)",
"琴-长E click(middle),keydown(E),click(middle),wait(0.4),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1)," +
"琴-短E wait(0.1),keydown(E),wait(0.4),moveby(1000,0),wait(0.2),moveby(1000,0),wait(0.2),moveby(1000,0),wait(0.2),moveby(1000,-3500),wait(1.8),keyup(E),wait(0.3),click(middle)",
"琴-长E wait(0.1),click(middle),keydown(E),click(middle),wait(0.4),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1)," +
"moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1)," +
"moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1)," +
"moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1),moveby(500,0),wait(0.1)," +
@@ -57,33 +57,29 @@ public class PickUpCollectHandler : IActionHandler
Logger.LogError("队伍识别未初始化成功!");
return;
}
var alias= string.Empty;
Avatar? picker = null;
var commandsList = new List<string>();
if (waypointForTrack != null)
{
if (!string.IsNullOrEmpty(waypointForTrack.ActionParams))
{
// 尝试别名转换为标准名称
try
{
alias = DefaultAutoFightConfig.AvatarAliasToStandardName(waypointForTrack.ActionParams);
}
catch (Exception e)
{
alias = waypointForTrack.ActionParams;
Console.WriteLine(e);
}
var commands = waypointForTrack.ActionParams.Split(',');
if (CharacterNames.Contains(alias))
foreach (var command in commands)
{
picker = combatScenes.SelectAvatar(alias);
}
else
{
var characterName = GetCharacterName(alias);
picker = combatScenes.SelectAvatar(characterName);
try
{
var alias = DefaultAutoFightConfig.AvatarAliasToStandardName(command);
commandsList.Add(!string.IsNullOrEmpty(alias) ? alias : command);
}
catch (Exception e)
{
commandsList.Add(command);
Console.WriteLine(e);
}
}
}
else
@@ -91,29 +87,41 @@ public class PickUpCollectHandler : IActionHandler
// 1、ActionParams没填参数尝试选择如果找到后续会执行第一个找到该角色的相关命令
foreach (var characterName in CharacterNames)
{
picker = combatScenes.SelectAvatar(characterName);
if (picker is null)
var pickerNull = combatScenes.SelectAvatar(characterName);
if (pickerNull is null)
{
continue;
}
alias = characterName;
commandsList.Add(characterName);
break;
}
}
}
if (picker is not null)
foreach (var commands in commandsList)
{
picker.TrySwitch();
await picker.WaitSkillCd(ct);
if (CharacterNames.Contains(commands))
{
picker = combatScenes.SelectAvatar(commands);
}
else
{
var characterName = GetCharacterName(commands);
picker = combatScenes.SelectAvatar(characterName);
}
if (picker is not null)
{
picker.TrySwitch();
await picker.WaitSkillCd(ct);
}
else
{
continue;
}
PickUpMaterial(combatScenes,commands); // 开始执行动作
}
else
{
Logger.LogError("未找到角色可执行聚集材料动作:{t}",CharacterNames);
return;
}
PickUpMaterial(combatScenes,alias); // 开始执行动作
}
/// <summary>
@@ -187,9 +195,10 @@ public class PickUpCollectHandler : IActionHandler
if (foundAvatar)
{
var selectedAvatar = combatScenes.SelectAvatar(characterName);
if (selectedAvatar != null)
{
selectedAvatar.AfterUseSkill();// 使用技能后更新技能CD
if (selectedAvatar is not null)
{
Sleep(200);//等待CD显示
selectedAvatar.AfterUseSkill();
}
break;
}

View File

@@ -639,7 +639,7 @@ public class PathExecutor
}
// 最小5分钟间隔
if ( _combatScenes?.CurrentMultiGameStatus?.IsInMultiGame == true && (DateTime.UtcNow - _lastGetExpeditionRewardsTime).TotalMinutes < 5)
if ( _combatScenes?.CurrentMultiGameStatus?.IsInMultiGame == true || (DateTime.UtcNow - _lastGetExpeditionRewardsTime).TotalMinutes < 5)
{
return false;
}