mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 10:10:45 +08:00
@@ -111,9 +111,9 @@ icon: ic:baseline-article
|
||||
|
||||
### 切换账号
|
||||
|
||||
- 仅支持切换至已登录的账号,使用登录名进行匹配,保证输入内容在所有已登录账号唯一即可
|
||||
- 官服:123****4567,可输入 123****4567、4567、123、3****4567
|
||||
- B服:张三,可输入 张三、张、三
|
||||
- 仅支持切换至已登录的账号,使用登录名进行查找,保证输入内容在所有已登录账号唯一即可
|
||||
- 官服:`123****4567`,可输入 `123****4567`、`4567`、`123`、`3****4567`
|
||||
- B服:`张三`,可输入 `张三`、`张`、`三`
|
||||
|
||||
### 自动战斗
|
||||
|
||||
|
||||
@@ -98,6 +98,12 @@ icon: ic:baseline-article
|
||||
- 戰鬥過程中如果刮痧了一直打不完,超過 5 分鐘會自動撤退所有地面單位;超過 6 分鐘會自動放棄當局戰鬥,不會卡住。
|
||||
- 如果任務出現問題卡住了,會自動放棄當次探索並重試。但如果經常在某個地方卡住然後放棄、嚴重影響效率的,歡迎提個 issue 反饋一下~
|
||||
|
||||
### 切換賬號
|
||||
|
||||
- 僅支持切換至已登錄的賬號,使用登錄名進行查找,保證輸入內容在所有已登錄賬號唯一即可
|
||||
- 官服:`123****4567`,可輸入 `123****4567`、`4567`、`123`、`3****4567`
|
||||
- B服:`張三`,可輸入 `張三`、`張`、`三`
|
||||
|
||||
### 自動戰鬥
|
||||
|
||||
- 歡迎使用作業分享站 [prts.plus](https://prts.plus),[抄作業.com](https://抄作业.com) 使用 & 分享作業檔案!
|
||||
|
||||
@@ -281,6 +281,7 @@ Enter 「SSReopen-XX」to pass SS normal difficulty level at one time</system:St
|
||||
<system:String x:Key="AutoDetectConnectionTip">This checkbox will be automatically unchecked after each detect is completed, and can be checked again if you need to re-detect</system:String>
|
||||
<system:String x:Key="AlwaysAutoDetectConnection">Re-detect every times</system:String>
|
||||
<system:String x:Key="AccountSwitch">Account Switch</system:String>
|
||||
<system:String x:Key="AccountSwitchManualRun">Manual switch</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">Fill in the account that needs to be switched to, leave blank to close the account switching
|
||||
Official(CN): Enter the mobile phone number displayed on the login interface, such as 123****4567
|
||||
Bilibili: Enter the account name displayed on the login interface, such as Zhang San
|
||||
|
||||
@@ -281,6 +281,7 @@
|
||||
<system:String x:Key="AutoDetectConnectionTip">このチェックボックスは、検出が完了するたびに自動的にチェックが外れますが、再検出が必要な場合は再度チェックを入れることができます</system:String>
|
||||
<system:String x:Key="AlwaysAutoDetectConnection">毎回再検出する</system:String>
|
||||
<system:String x:Key="AccountSwitch">アカウントの切り替え</system:String>
|
||||
<system:String x:Key="AccountSwitchManualRun">手動スイッチ</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">切り替える必要があるアカウントを入力し、空白のままにしてアカウントの切り替えを完了します
|
||||
公式(CN): ログイン インターフェイスに表示される携帯電話番号を入力します (例: 123****4567)
|
||||
Bilibili: ログイン インターフェイスに表示されるアカウント名 (Zhang San など) を入力します。
|
||||
|
||||
@@ -281,6 +281,7 @@ OF-1을 해금하지 않았다면 선택하지 말아 주세요.</system:String>
|
||||
<system:String x:Key="AutoDetectConnectionTip">이 체크박스는 감지가 끝나면 자동으로 체크가 해제됩니다. 다시 감지하려면 다시 체크해주세요</system:String>
|
||||
<system:String x:Key="AlwaysAutoDetectConnection">매번 재감지</system:String>
|
||||
<system:String x:Key="AccountSwitch">계정 전환</system:String>
|
||||
<system:String x:Key="AccountSwitchManualRun">수동 스위치</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">전환할 계좌를 입력하고, 계좌 전환을 종료하려면 공백으로 남겨두세요.
|
||||
공식(CN): 로그인 인터페이스에 표시된 휴대폰 번호(예: 123****4567)를 입력하세요.
|
||||
Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: Zhang San)을 입력하세요.
|
||||
|
||||
@@ -281,9 +281,10 @@
|
||||
<system:String x:Key="AutoDetectConnectionTip">每次检测完成后会自动取消勾选,若需要重新检测可再次勾选,若反复连接失败可勾选始终自动检测连接</system:String>
|
||||
<system:String x:Key="AlwaysAutoDetectConnection">每次重新检测</system:String>
|
||||
<system:String x:Key="AccountSwitch">账号切换</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">填写需要切换至的账号,留空以关闭账号切换
|
||||
官服输入登录界面显示的手机号,如 123****4567
|
||||
B服输入登录界面显示的账号名,如 张三
|
||||
<system:String x:Key="AccountSwitchManualRun">手动切换</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">需要切换至的账号,留空以禁用
|
||||
官服输入登录界面显示的手机号,如「123****4567」,可输入「123****4567」或「4567」或「23****45」
|
||||
B服输入登录界面显示的账号名,如「张三」,可输入「张」或「三」
|
||||
暂不支持其他服</system:String>
|
||||
<system:String x:Key="ADBPath">ADB 路径 (相对/绝对)</system:String>
|
||||
<system:String x:Key="ConnectionAddress">连接地址</system:String>
|
||||
|
||||
@@ -281,10 +281,11 @@
|
||||
<system:String x:Key="AutoDetectConnectionTip">每次檢測完成後會自動取消勾選,若需要重新檢測可再次勾選</system:String>
|
||||
<system:String x:Key="AlwaysAutoDetectConnection">每次重新檢測</system:String>
|
||||
<system:String x:Key="AccountSwitch">賬號切換</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">填寫需要切換至的賬號,留空以關閉賬號切換
|
||||
官服輸入登錄界面顯示的手機號,如 123****4567
|
||||
B服輸入登錄界面顯示的賬號名,如 張三
|
||||
暫不支持其他類型</system:String>
|
||||
<system:String x:Key="AccountSwitchManualRun">手動切换</system:String>
|
||||
<system:String x:Key="AccountSwitchTip" xml:space="preserve">需要切換至的賬號,留空以禁用
|
||||
官服輸入登錄界面顯示的手機號,如「123****4567」,可輸入「123****4567」或「4567」或「23****45」
|
||||
B服輸入登錄界面顯示的賬號名,如「張三」,可輸入「張」或「三」
|
||||
暫不支持其他服</system:String>
|
||||
<system:String x:Key="ADBPath">ADB 路徑(相對/絕對)</system:String>
|
||||
<system:String x:Key="ConnectionAddress">連接地址</system:String>
|
||||
<system:String x:Key="ConnectionAddressTip">若遇到問題可嘗試手動修改</system:String>
|
||||
|
||||
@@ -560,6 +560,11 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
}
|
||||
}
|
||||
|
||||
public void AccountSwitchMannualRun()
|
||||
{
|
||||
Instances.TaskQueueViewModel.QuickSwitchAccount();
|
||||
}
|
||||
|
||||
private bool _minimizingStartup = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.MinimizingStartup, bool.FalseString));
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -732,6 +732,70 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<bool> ConnectToEmulator()
|
||||
{
|
||||
string errMsg = string.Empty;
|
||||
bool connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
|
||||
// 尝试启动模拟器
|
||||
if (!connected && Instances.SettingsViewModel.RetryOnDisconnected)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("TryToStartEmulator"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.TryToStartEmulator(true));
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return false;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
// 尝试重启adb
|
||||
if (!connected && Instances.SettingsViewModel.AllowADBRestart)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("RestartADB"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.RestartADB());
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return false;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
// 尝试杀掉adb进程
|
||||
if (!connected && Instances.SettingsViewModel.AllowADBHardRestart)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("HardRestartADB"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.HardRestartADB());
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return false;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
if (!connected)
|
||||
{
|
||||
AddLog(errMsg, UiLogColor.Error);
|
||||
_runningState.SetIdle(true);
|
||||
SetStopped();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts.
|
||||
/// </summary>
|
||||
@@ -758,9 +822,6 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
AddLog(LocalizationHelper.GetString("AdbReplacementTips"), UiLogColor.Info);
|
||||
}
|
||||
|
||||
string errMsg = string.Empty;
|
||||
bool connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
|
||||
// 一般是点了“停止”按钮了
|
||||
if (Stopping)
|
||||
{
|
||||
@@ -768,59 +829,8 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
return;
|
||||
}
|
||||
|
||||
// 尝试启动模拟器
|
||||
if (!connected && Instances.SettingsViewModel.RetryOnDisconnected)
|
||||
if (!await ConnectToEmulator())
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("TryToStartEmulator"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.TryToStartEmulator(true));
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
// 尝试重启adb
|
||||
if (!connected && Instances.SettingsViewModel.AllowADBRestart)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("RestartADB"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.RestartADB());
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
// 尝试杀掉adb进程
|
||||
if (!connected && Instances.SettingsViewModel.AllowADBHardRestart)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("ConnectFailed") + "\n" + LocalizationHelper.GetString("HardRestartADB"));
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.HardRestartADB());
|
||||
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
}
|
||||
|
||||
if (!connected)
|
||||
{
|
||||
AddLog(errMsg, UiLogColor.Error);
|
||||
_runningState.SetIdle(true);
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -944,6 +954,68 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
_runningState.SetIdle(true);
|
||||
}
|
||||
|
||||
public async void QuickSwitchAccount()
|
||||
{
|
||||
if (!_runningState.GetIdle())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_runningState.SetIdle(false);
|
||||
|
||||
// 虽然更改时已经保存过了,不过保险起见还是在点击开始之后再保存一次任务及基建列表
|
||||
TaskItemSelectionChanged();
|
||||
Instances.SettingsViewModel.InfrastOrderSelectionChanged();
|
||||
|
||||
ClearLog();
|
||||
|
||||
await Task.Run(() => Instances.SettingsViewModel.RunScript("StartsWithScript"));
|
||||
|
||||
AddLog(LocalizationHelper.GetString("ConnectingToEmulator"));
|
||||
if (!Instances.SettingsViewModel.AdbReplaced && !Instances.SettingsViewModel.IsAdbTouchMode())
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("AdbReplacementTips"), UiLogColor.Info);
|
||||
}
|
||||
|
||||
string errMsg = string.Empty;
|
||||
bool connected = await Task.Run(() => Instances.AsstProxy.AsstConnect(ref errMsg));
|
||||
|
||||
// 一般是点了“停止”按钮了
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!await ConnectToEmulator())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 一般是点了“停止”按钮了
|
||||
if (Stopping)
|
||||
{
|
||||
SetStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
bool taskRet = true;
|
||||
taskRet &= AppendStart();
|
||||
|
||||
taskRet &= Instances.AsstProxy.AsstStart();
|
||||
|
||||
if (taskRet)
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("Running"));
|
||||
}
|
||||
else
|
||||
{
|
||||
AddLog(LocalizationHelper.GetString("UnknownErrorOccurs"));
|
||||
await Stop();
|
||||
SetStopped();
|
||||
}
|
||||
}
|
||||
|
||||
private static bool AppendStart()
|
||||
{
|
||||
var mode = Instances.SettingsViewModel.ClientType;
|
||||
|
||||
@@ -14,14 +14,29 @@
|
||||
d:DesignWidth="220"
|
||||
mc:Ignorable="d">
|
||||
<StackPanel>
|
||||
<TextBox
|
||||
Margin="0,5"
|
||||
hc:TitleElement.Title="{DynamicResource AccountSwitch}"
|
||||
IsReadOnly="{c:Binding !Idle}"
|
||||
Style="{StaticResource TextBoxExtend}"
|
||||
Text="{Binding AccountName, UpdateSourceTrigger=PropertyChanged}"
|
||||
ToolTip="{DynamicResource AccountSwitchTip}"
|
||||
Visibility="{c:Binding '(ClientType == "Official") or (ClientType == "Bilibili") or (ClientType == "")'}" />
|
||||
<Grid Margin="0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox
|
||||
hc:TitleElement.Title="{DynamicResource AccountSwitch}"
|
||||
IsReadOnly="{c:Binding !Idle}"
|
||||
Style="{StaticResource TextBoxExtend}"
|
||||
Text="{Binding AccountName, UpdateSourceTrigger=PropertyChanged}"
|
||||
ToolTip="{DynamicResource AccountSwitchTip}"
|
||||
Visibility="{c:Binding '(ClientType == "Official") or (ClientType == "Bilibili") or (ClientType == "")'}" />
|
||||
|
||||
<Button
|
||||
Grid.Column="1"
|
||||
Padding="12,1,12,1"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
hc:BorderElement.CornerRadius="0,4,4,0"
|
||||
BorderThickness="0,1,1,1"
|
||||
Command="{s:Action AccountSwitchMannualRun}"
|
||||
Content="{DynamicResource AccountSwitchManualRun}" />
|
||||
</Grid>
|
||||
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
|
||||
Reference in New Issue
Block a user