diff --git a/docs/.vuepress/public/images/ko-kr/readme/1-dark.png b/docs/.vuepress/public/images/ko-kr/readme/1-dark.png new file mode 100644 index 0000000000..4bd1831823 Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/1-dark.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/1-light.png b/docs/.vuepress/public/images/ko-kr/readme/1-light.png index a90463a364..436da81776 100644 Binary files a/docs/.vuepress/public/images/ko-kr/readme/1-light.png and b/docs/.vuepress/public/images/ko-kr/readme/1-light.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/2-dark.png b/docs/.vuepress/public/images/ko-kr/readme/2-dark.png new file mode 100644 index 0000000000..1f04f63645 Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/2-dark.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/2-light.png b/docs/.vuepress/public/images/ko-kr/readme/2-light.png index 12dfb49512..b0fb5fff45 100644 Binary files a/docs/.vuepress/public/images/ko-kr/readme/2-light.png and b/docs/.vuepress/public/images/ko-kr/readme/2-light.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/3-dark.png b/docs/.vuepress/public/images/ko-kr/readme/3-dark.png new file mode 100644 index 0000000000..be0ec04c3f Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/3-dark.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/3-light.png b/docs/.vuepress/public/images/ko-kr/readme/3-light.png new file mode 100644 index 0000000000..218bf02a52 Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/3-light.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/4-dark.png b/docs/.vuepress/public/images/ko-kr/readme/4-dark.png new file mode 100644 index 0000000000..7e41bcd84d Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/4-dark.png differ diff --git a/docs/.vuepress/public/images/ko-kr/readme/4-light.png b/docs/.vuepress/public/images/ko-kr/readme/4-light.png new file mode 100644 index 0000000000..d4551ec059 Binary files /dev/null and b/docs/.vuepress/public/images/ko-kr/readme/4-light.png differ diff --git a/docs/ko-kr/develop/ci-tutorial.md b/docs/ko-kr/develop/ci-tutorial.md new file mode 100644 index 0000000000..ab28d91d1c --- /dev/null +++ b/docs/ko-kr/develop/ci-tutorial.md @@ -0,0 +1,135 @@ +--- +order: 7 +icon: devicon-plain:githubactions +--- + +# CI 시스템 해석 + +MAA는 Github Action을 활용하여 웹사이트 구축, 자동 리소스 업데이트, 최종 파일 빌드 및 릴리즈 등 대량의 자동화 작업을 완성했습니다. 시간이 지나면서 이러한 CI들은 점차 중첩되기 시작했고, 일부는 다른 저장소로 연결되기도 했습니다. 본 문서는 MAA의 CI 시스템을 개선하고자 하는 분들에게 간단한 소개를 제공하는 것을 목표로 합니다. + +본 문서를 읽기 전에 MAA의 프로젝트 구조와 구성에 대한 기본적인 개념을 갖고 있는 것이 좋습니다. + +::: tip +이 페이지에서 CI 파일명을 검색하여 원하는 부분으로 빠르게 이동할 수 있습니다. +::: + +워크플로우 파일들은 모두 `.github/workflows` 하위에 저장되어 있으며, 각 파일은 기능에 따라 다음과 같은 부분으로 나눌 수 있습니다: + ++ [코드 테스트](#코드-테스트) ++ [코드 빌드](#코드-빌드) ++ [버전 릴리즈](#버전-릴리즈) ++ [리소스 업데이트](#리소스-업데이트) ++ [웹사이트 구축](#웹사이트-구축) ++ [Issues 관리](#issues-관리) ++ [Pull Requests 관리](#pull-requests-관리) ++ [MirrorChyan 관련](#mirrorchyan-관련) ++ [기타](#기타) + +또한 [pre-commit.ci](https://pre-commit.ci/)를 통해 코드의 자동 포맷팅과 이미지 리소스의 자동 최적화를 구현했으며, PR 생성 후 자동으로 실행되므로 특별히 신경 쓸 필요가 없습니다. + +## 코드 테스트 + +`smoke-testing.yml` + +이 워크플로우는 주로 MaaCore에 대한 기본적인 검사를 담당하며, 리소스 파일 로딩, 일부 간단한 task 실행 테스트 등을 포함합니다. + +테스트 케이스가 오랫동안 업데이트되지 않아서, 현재 이 워크플로우는 기본적으로 리소스 파일에 오류가 없는지, 그리고 MaaCore의 코드에 치명적인 오류(빌드에 영향을 주는 종류)가 없는지 확인하는 역할을 합니다. + +## 코드 빌드 + +`ci.yml` + +이 워크플로우는 코드의 전체 빌드 작업을 담당하며, MAA의 모든 구성 요소를 포함합니다. 빌드 결과물은 실행 가능한 MAA입니다. + +필수적인 MaaCore 외에, Windows 빌드 결과물에는 MaaWpfGui가, MacOS 빌드 결과물에는 MaaMacGui가, Linux 빌드 결과물에는 MaaCLI가 포함됩니다. + +이 워크플로우는 새로운 Commit이나 PR이 발생할 때마다 자동으로 실행되며, 릴리즈 PR에 의해 트리거될 때는 이번 빌드 결과물이 직접 릴리즈에 사용되고 Release가 생성됩니다. + +## 버전 릴리즈 + +버전 릴리즈, 줄여서 릴리즈는 사용자에게 업데이트를 배포하는 필수 작업으로, 다음 워크플로우들로 구성됩니다: + ++ `release-nightly-ota.yml` 개발 버전 릴리즈 ++ `release-ota.yml` 정식 버전/공개 베타 버전 릴리즈 + + `gen-changelog.yml` 정식 버전/공개 베타 버전용 changelog 생성 + + `pr-auto-tag.yml` 정식 버전/공개 베타 버전용 tag 생성 + +::: tip +위 파일명의 ota는 Over-the-Air를 의미하며, 우리가 흔히 말하는 "증분 업데이트 패키지"입니다. 따라서 MAA의 릴리즈 과정에는 실제로 이전 버전들에 대한 OTA 패키지 빌드 단계가 포함됩니다. +::: + +### 개발 버전 + +`release-nightly-ota.yml` + +이 워크플로우는 매일 UTC 시간 22시에 자동으로 실행되어 개발 버전의 릴리즈 주기를 보장합니다. 물론 변경사항을 검증해야 할 때 수동으로 릴리즈할 수도 있습니다. + +주의할 점은 개발 버전의 릴리즈는 Windows 사용자만을 대상으로 하며, MacOS와 Linux 사용자는 개발 업데이트를 받을 수 없습니다. + +### 정식 버전/공개 베타 버전 + +이 두 채널의 릴리즈 과정은 상대적으로 복잡합니다. 릴리즈 단계를 시뮬레이션하여 각 워크플로우의 역할을 설명하겠습니다: + +1. `dev`에서 `master` 브랜치로의 PR을 생성하며, 해당 PR의 이름은 `Release v******` 형식이어야 합니다 +2. `gen-changelog.yml`이 최근 정식 버전/공개 베타 버전부터 현재 버전까지의 changelog를 생성합니다(새로운 PR 형태로) +3. changelog를 수동으로 조정하고 간단한 설명을 추가합니다 +4. PR을 병합하면 `pr-auto-tag.yml`이 트리거되어 tag를 생성하고 브랜치를 동기화합니다 +5. Release 이벤트가 `release-ota.yml`을 트리거하여 master에 tag를 생성한 후 ota 패키지 빌드 및 첨부파일 업로드를 진행합니다 + +## 리소스 업데이트 + +이 부분의 워크플로우는 주로 MAA의 리소스 업데이트와 최적화를 담당하며, 구체적인 워크플로우는 다음과 같습니다: + ++ `res-update-game.yml` 정기적으로 실행되어 지정된 저장소에서 게임 리소스를 가져옵니다 ++ `sync-resource.yml` 리소스를 MaaResource 저장소에 동기화하여 리소스 업데이트에 사용합니다 ++ `optimize-templates.yml` 템플릿 이미지 크기를 최적화합니다 + +## 웹사이트 구축 + +`website-workflow.yml` + +이 워크플로우는 주로 MAA 공식 웹사이트의 구축과 발행을 담당하며, 메인 페이지와 문서 두 구성 요소를 포함합니다. + +참고로 웹사이트 발행은 릴리즈와 강하게 연결되어 있어서, 평상시 웹페이지 구성 요소를 수정할 때는 오류가 없는지 확인하기 위해 빌드만 진행하고, 릴리즈 시에만 실제로 Azure에 배포됩니다. + +## Issues 관리 + +`issue-checker.yml` + +정규 표현식 매칭을 통해 각 Issue에 태그를 달아 Issue 내용을 분류하고 표시하여 조회와 관리를 용이하게 합니다. + +`issue-checkbox-checker.yml` + +정규 표현식 매칭을 통해 "주의 깊게 읽지 않음"을 체크한 Issue를 자동으로 닫습니다. +"주의 깊게 읽지 않음"이 체크되지 않은 경우 모든 체크박스를 접습니다. + +`stale.yml` + +90일 이상 활동이 없는 Bug Issue를 검사하여 표시하고 알림을 보내며, 7일 후에도 활동이 없으면 닫습니다. + +## Pull Requests 관리 + +`pr-checker.yml` + +이 워크플로우는 PR의 Commit Message가 [관례적 커밋](https://www.conventionalcommits.org/ko/v1.0.0/)을 준수하는지, 그리고 Merge Commit을 포함하는지 검사하며, 위 조건에 해당하면 알림을 제공합니다. + +## MirrorChyan 관련 + +MirrorChyan은 유료 업데이트 미러 서비스이며, 관련 워크플로우는 다음과 같습니다: + ++ `mirrorchyan.yml` 업데이트 패키지를 MirrorChyan에 동기화 ++ `mirrorchyan_release_note.yml` MirrorChyan용 Release Note 생성 + +## 기타 + +`markdown-checker.yml` + +저장소의 모든 Markdown 파일에 유효하지 않은 링크가 포함되어 있는지 검사합니다. + +`blame-ignore.yml` + +Commit Message에 `blame ignore`가 포함된 커밋을 자동으로 무시하여 저장소 히스토리를 깔끔하게 유지합니다. + +`cache-delete.yml` + +PR 병합 후 관련 캐시를 정리하여 캐시 사용량을 절약합니다. diff --git a/docs/ko-kr/develop/development.md b/docs/ko-kr/develop/development.md index d2432f8f91..8d8052f69b 100644 --- a/docs/ko-kr/develop/development.md +++ b/docs/ko-kr/develop/development.md @@ -5,6 +5,10 @@ icon: iconoir:developer # 개발 환경 구축 +::: tip +본 페이지는 주로 PR 과정 및 MAA의 파일 포맷 요구사항을 설명합니다. MAA의 실행 로직 변경에 대한 구체적인 내용은 [프로토콜 문서](../protocol/)를 참고하세요. +::: + ## Github Pull Request 진행 과정 ### 프로그래밍을 잘 모르지만, json 파일과 docs 문서를 수정하고싶어요. 어떻게 해야하나요? @@ -124,6 +128,8 @@ MAA는 리포지토리의 코드 및 리소스 파일들을 아름답고 일관 pre-commit install ``` +pip 설치 후에도 Pre-commit을 실행할 수 없다면, PIP 설치 경로가 PATH에 추가되었는지 확인하세요. + 이제, 매번 커밋할 때마다 포매팅 도구가 자동으로 실행되어 코드 형식이 규칙에 맞는지 확인합니다. ## Visual Studio에서 clang-format 사용 설정 diff --git a/docs/ko-kr/develop/documentation-guidelines.md b/docs/ko-kr/develop/documentation-guidelines.md index 41f4967bad..f46c5e3109 100644 --- a/docs/ko-kr/develop/documentation-guidelines.md +++ b/docs/ko-kr/develop/documentation-guidelines.md @@ -13,7 +13,7 @@ icon: jam:write-f ## 로컬 배포 -1. [pnpm](https://pnpm.io/zh/installation)을 설치하고, [Pull Request 가이드](./development.md#github-pull-request-진행-과정)을 참고해, 저장소를 로컬에 클론합니다. +1. [pnpm](https://pnpm.io/installation)을 설치하고, [Pull Request 가이드](./development.md#github-pull-request-진행-과정)을 참고해, 저장소를 로컬에 클론합니다. 2. `website` 경로에서 새로운 터미널을 열고, `pnpm i` 을 실행하여 의존성 파일을 다운로드합니다. 3. `pnpm run dev` 를 실행하여 배포를 시작합니다. diff --git a/docs/ko-kr/develop/issue-bot-usage.md b/docs/ko-kr/develop/issue-bot-usage.md index 070d5d7448..b62788e301 100644 --- a/docs/ko-kr/develop/issue-bot-usage.md +++ b/docs/ko-kr/develop/issue-bot-usage.md @@ -29,7 +29,7 @@ Commitizen 규격으로 커밋하지 않는 경우, 병합 요청(Merge Request) Issue Bot은 풀 리퀘스트의 제목을 확인합니다. 아래 키워드로 시작하지 않는 제목은 `ambiguous(애매모호한)`로 표시됩니다. - `build`, `chore`, `ci`, `doc`, `docs`, `feat`, `fix`, `perf`, `refactor`, `rfc`, `style`, `test` -- `Merge`, `merge`, `Revert`, `revert` +- `Merge`, `merge`, `Revert`, `revert`, `Reapply`, `reapply` ### 수동으로 트리거하기 diff --git a/docs/ko-kr/develop/linux-tutorial.md b/docs/ko-kr/develop/linux-tutorial.md index fa0a2431b3..6c4b7a224a 100644 --- a/docs/ko-kr/develop/linux-tutorial.md +++ b/docs/ko-kr/develop/linux-tutorial.md @@ -11,6 +11,10 @@ icon: teenyicons:linux-alt-solid MAA의 빌드 방법은 여전히 논의 중입니다. 이 튜토리얼의 내용은 오래되었을 수 있으므로 [GitHub workflow file](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/.github/workflows/ci.yml#L134)의 스크립트를 참고하세요. 또한 [AUR PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights) 및 [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)을 참고할 수 있습니다. ::: +::: info +Mac은 `tools/build_macos_universal.zsh` 스크립트를 사용하여 컴파일할 수 있습니다. [MaaAssistantArknights/MaaMacGui](https://github.com/MaaAssistantArknights/MaaMacGui) 프로젝트의 README.md를 참고하는 것을 권장합니다. +::: + ## 컴파일 과정 1. 컴파일에 필요한 종속성 다운로드 @@ -68,10 +72,12 @@ MAA의 빌드 방법은 여전히 논의 중입니다. 이 튜토리얼의 내 [Python demo](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/src/Python/sample.py)에서 `__main__`의 구현을 참조하세요. -### C +### C++ [CppSample](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/src/Cpp/main.cpp)의 구현을 참조하세요. -### C\# +### C Sharp + + [MaaWpfGui](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/src/MaaWpfGui/Main/AsstProxy.cs)의 구현을 참조하세요. diff --git a/docs/ko-kr/develop/overseas-client-adaptation.md b/docs/ko-kr/develop/overseas-client-adaptation.md index 2978285d2b..12d83cc656 100644 --- a/docs/ko-kr/develop/overseas-client-adaptation.md +++ b/docs/ko-kr/develop/overseas-client-adaptation.md @@ -9,7 +9,7 @@ icon: ri:earth-fill 이 튜토리얼을 시작하기 전에 다음 사항이 준비되었는지 확인해야 합니다. -1. 필요한 소프트웨어를 설치하고 올바르게 구성했습니다. ZH-CN 클라이언트 또는 해당 클라이언트의 `readme.md` 에 지원되는 기능이 제대로 작동하는지 확인할 수 있는 정보가 있서야 합니다. +1. 필요한 소프트웨어를 설치하고 올바르게 구성했습니다. ZH-CN 클라이언트 또는 해당 클라이언트의 `readme.md` 에 지원되는 기능이 제대로 작동하는지 확인할 수 있는 정보가 있어야 합니다. 2. [작업 스키마](../protocol/task-schema.md) 를 읽고 각 필드의 의미와 사용법을 기본적으로 이해해야 합니다. 코드에서 `@` 와 `#` 의 의미와 용법도 이해해야 합니다. 3. ZH-CN 클라이언트의 `task.json` 파일과 템플릿 이미지는 해외 클라이언트에 대해 언급되지 않았거나 누락된 경우의 대안으로 사용된다는 점을 이해해야합니다. 해외 클라이언트에 대한 `task.json` 의 내용은 ZH-CN 작업 필드에 따라 다시 작성해야 합니다. 4. 영어 실력이 있고, 영어 로그를 읽을 수 있으며, 로그를 통해 누락된 사진과 다른 정보를 찾을 수 있는 역량이 있으면 좋습니다. @@ -138,4 +138,4 @@ ROI 범위를 수정하는 방법: ## 변경사항 제출 -[Github Pull Requst 가이드](./development.md#github-pull-request-진행-과정)을 참고하세요! +[Github Pull Request 가이드](./pr-tutorial.md)를 참고하세요! diff --git a/docs/ko-kr/develop/pr-tutorial.md b/docs/ko-kr/develop/pr-tutorial.md index 88d1cebaef..cc0121ed8f 100644 --- a/docs/ko-kr/develop/pr-tutorial.md +++ b/docs/ko-kr/develop/pr-tutorial.md @@ -5,16 +5,16 @@ icon: mingcute:git-pull-request-fill # 웹 기반 PR 가이드 +소소한 GitHub Pull Request 사용 가이드 (\*´▽`)ノノ + ::: warning 이 가이드는 많은 개념을 단순화하여 더 많은 사람들이 실제로 사용할 수 있도록 설계되었습니다. 때로는 꽤 불안불안한 ~~하지만 간단한~~ 조치들과 약간 부정확한 설명이 있을 수 있으므로 전문가 분들의 이해를 부탁드립니다. 만약 Git 사용 경험이 있고 프로그래밍 기초를 가지고 계시다면 ~~그럼 당신은 왜 보고 있나요🔨~~, 약간 더 발전된 가이드인 [Github Pull Request 진행과정](./development.md#github-pull-request-진행-과정)을 확인해주세요. ::: -소소한 GitHUb Pull Request 사용 가이드 (\*´▽`)ノノ - ## 기본 개념 및 용어 설명 - 장에서는 다소 지루한 내용을 다루고 있습니다. 관심 없으면 바로 실제 조작 부분으로 건너뛸 수 있으며, 이해되지 않는 부분은 나중에 다시 찾아보세요. +이 장에서는 다소 지루한 내용을 다루고 있습니다. 관심 없으면 바로 실제 조작 부분으로 건너뛸 수 있으며, 이해되지 않는 부분은 나중에 다시 찾아보세요. ### Repository (저장소) @@ -160,6 +160,8 @@ PR로도 알려져 있으며, "풀 리퀘스트"라는 용어는 너무 길고 } ``` + 우리는 간단한 커밋 제목 [관례적 커밋](https://www.conventionalcommits.org/zh-hans/v1.0.0/)이 있으니 가능하면 지켜주세요. 물론 정말 이해가 안 된다면 일단 아무렇게나 써도 됩니다. + ```component Image1 { "imageList": [ @@ -201,6 +203,7 @@ PR로도 알려져 있으며, "풀 리퀘스트"라는 용어는 너무 길고 ``` 그런 다음 제목, 수정한 내용 등을 작성하고 확인을 클릭합니다. + PR 제목도 [관례적 커밋](https://www.conventionalcommits.org/zh-hans/v1.0.0/)을 지켜주세요. 물론 여전히 이해가 안 된다면 일단 아무렇게나 써도 됩니다. ```component Image1 { @@ -242,14 +245,7 @@ PR로도 알려져 있으며, "풀 리퀘스트"라는 용어는 너무 길고 } ``` -13. 전문가들의 승인을 기다리면 모두 완료됩니다! **버전이 출시**되면 당신의 GitHub 프로필 사진이 자동으로 기여자 목록에 추가됩니다. 모든 분들의 자비로운 공헌에 감사드립니다! - ~~왜 모든 사람들이 이중 인격이야, 오 나도 그렇지, 그럼 괜찮아~~ - - ::: tip 기여자 - 개발/테스트에 참여한 모든 친구들에게 감사드립니다. 여러분의 도움으로 MAA가 점점 더 좋아지고 있습니다! (\*´▽ `)ノノ - - [![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights&max=105&columns=15)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) - ::: +13. 전문가들의 승인을 기다리면 모두 완료됩니다! 수정한 내용이 이미 MAA 메인 저장소에 들어갔습니다! 14. 다음에 다른 PR을 제출하려면 먼저 dev 브랜치로 전환한 다음 아래 그림과 같이 진행하세요. @@ -258,7 +254,7 @@ PR로도 알려져 있으며, "풀 리퀘스트"라는 용어는 너무 길고 ::: 충돌을 일으키지 않을 경우 오른쪽에 초록색 `Update Branch` 버튼을 사용하세요. - 에서 설명한 이 모든 것을 모르거나 알 필요가 없다면 왼쪽의 버튼을 클릭하세요. + 충돌 상황에 대해 잘 모르거나 알 필요가 없다면 왼쪽의 버튼을 클릭하세요. ```component Image1 { @@ -276,3 +272,12 @@ PR로도 알려져 있으며, "풀 리퀘스트"라는 용어는 너무 길고 ``` 그러면 3-14 단계를 반복하여 수정하고 PR을 제출하면 됩니다~ + +**버전이 출시**되면 당신의 GitHub 프로필 사진이 자동으로 기여자 목록에 추가됩니다. 모든 분들의 자비로운 공헌에 감사드립니다! +~~왜 모든 사람들이 이중 인격이야, 아 나도 그렇지, 그럼 괜찮아~~ + +::: tip 기여자 +개발/테스트에 참여한 모든 친구들에게 감사드립니다. 여러분의 도움으로 MAA가 점점 더 좋아지고 있습니다! (\*´▽ `)ノノ + +[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights&max=105&columns=15)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) +::: diff --git a/docs/ko-kr/manual/cli/README.md b/docs/ko-kr/manual/cli/README.md index 7eac911367..d10a129405 100644 --- a/docs/ko-kr/manual/cli/README.md +++ b/docs/ko-kr/manual/cli/README.md @@ -6,4 +6,12 @@ dir: order: 6 --- +Rust로 작성된 간단한 MAA 명령행 도구입니다. + +## 기능 + +- `maa fight`, `maa run `와 같은 미리 정의된 또는 사용자 정의 작업을 실행합니다. +- `maa install` 및 `maa update`를 사용하여 MaaCore 및 리소스를 설치하고 업데이트합니다. +- `maa self update`를 사용하여 자체 업데이트를 수행합니다. + diff --git a/docs/ko-kr/manual/cli/intro.md b/docs/ko-kr/manual/cli/intro.md deleted file mode 100644 index 331576a7c5..0000000000 --- a/docs/ko-kr/manual/cli/intro.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -order: 1 -icon: material-symbols:toc ---- - -# 소개 - -Rust로 작성된 간단한 [MAA][maa-home] 명령줄 도구입니다. - -## 기능 - -- `maa fight`, `maa run `와 같은 미리 정의된 또는 사용자 정의 작업을 실행합니다. -- `maa install` 및 `maa update`를 사용하여 MaaCore 및 리소스를 설치하고 업데이트합니다. -- `maa self update`를 사용하여 자체 업데이트를 수행합니다. - -## 문서 - -- [설치 및 빌드](install.md) -- [사용법](usage.md) -- [설정](config.md) -- [FAQ](faq.md) - -[maa-home]: https://github.com/MaaAssistantArknights/MaaAssistantArknights/ diff --git a/docs/ko-kr/manual/connection.md b/docs/ko-kr/manual/connection.md index 14faba0bbf..9a19c040ae 100644 --- a/docs/ko-kr/manual/connection.md +++ b/docs/ko-kr/manual/connection.md @@ -5,6 +5,20 @@ icon: mdi:plug # 연결 설정 +## 자동 감지 + +MAA는 현재 **실행 중인 단일 에뮬레이터**를 통해 ADB 경로, 연결 주소 및 연결 구성을 자동으로 감지하고 채울 수 있습니다. + +MAA v5.7.0까지 지원하는 감지 가능한 에뮬레이터 및 연결 주소는 다음과 같습니다: + +- BlueStacks 5: `127.0.0.1:5555/5556/5565/5575/5585/5595/5554` +- MuMu 에뮬레이터 12: `127.0.0.1:16384/16416/16448/16480/16512/16544/16576` +- LDPlayer 9: `emulator-5554/5556/5558/5560`, `127.0.0.1:5555/5557/5559/5561` +- 逍遥(Xiaoyao): `127.0.0.1:62001/59865` +- 夜神(Yeshen): `127.0.0.1:21503` + +감지에 실패하면 UAC 관리자 권한으로 MAA를 시작하여 다시 감지해보세요. 여전히 실패한다면 아래 수동 설정을 참고하고, 에뮬레이터와 연결 주소가 위 목록에 포함되어 있는지 확인하세요. + ## ADB 경로 :::info 기술적 정보 @@ -41,12 +55,13 @@ MAA 폴더에 직접 압축을 푸는 것을 권장합니다. 그러면 ADB 경 - [Bluestacks 5](https://support.bluestacks.com/hc/zh-tw/articles/360061342631-%E5%A6%82%E4%BD%95%E5%B0%87%E6%82%A8%E7%9A%84%E6%87%89%E7%94%A8%E5%BE%9EBlueStacks-4%E8%BD%89%E7%A7%BB%E5%88%B0BlueStacks-5#%E2%80%9C2%E2%80%9D) `5555` - [MuMu Pro](https://mumu.163.com/mac/function/20240126/40028_1134600.html) `16384` - [MuMu 12](https://mumu.163.com/help/20230214/35047_1073151.html) `16384` +- [LDPlayer 9](https://help.ldmnq.com/docs/LD9adbserver) `emulator-5554` - [逍遥(Xiaoyao)](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `21503` - [夜神(Yeshen)](https://support.yeshen.com/zh-CN/qt/ml) `62001` 기타 에뮬레이터는 [赵青青의 블로그](https://www.cnblogs.com/zhaoqingqing/p/15238464.html)를 참고하세요. -#### 멀티 인스턴스에 관하여 +#### 멀티 인스턴스 포트 확인 - MuMu 12 의 멀티 인스턴스 관리자 오른쪽 상단에서 실행 중인 인스턴스의 포트를 확인할 수 있습니다. - Bluestacks 5 에뮬레이터 설정 내에서 현재 멀티 인스턴스 포트를 확인할 수 있습니다. @@ -56,34 +71,34 @@ MAA 폴더에 직접 압축을 푸는 것을 권장합니다. 그러면 ADB 경 - 방법 1: adb 명령어로 에뮬레이터 포트 확인 - 1. **하나의 에뮬레이터**를 실행하고, 다른 안드로이드 장치가 이 컴퓨터에 연결되어 있지 않은지 확인합니다. - 2. adb 실행 파일이 있는 폴더에서 명령어 창을 엽니다. - 3. 다음 명령어를 실행합니다. + 1. **하나의 에뮬레이터**를 실행하고, 다른 안드로이드 장치가 이 컴퓨터에 연결되어 있지 않은지 확인합니다. + 2. adb 실행 파일이 있는 폴더에서 명령어 창을 엽니다. + 3. 다음 명령어를 실행합니다. - ```sh - # Windows 명령 프롬프트 - adb devices - # Windows PowerShell - .\adb devices - ``` + ```sh + # Windows 명령 프롬프트 + adb devices + # Windows PowerShell + .\adb devices + ``` - 다음은 출력 예시입니다: + 다음은 출력 예시입니다: - ```text - List of devices attached - 127.0.0.1:<포트 번호> device - emulator-<네 자리 숫자> device - ``` + ```text + List of devices attached + 127.0.0.1:<포트 번호> device + emulator-<네 자리 숫자> device + ``` - `127.0.0.1:<포트>` 또는 `emulator-<네 자리 숫자>`를 연결 주소로 사용합니다. + `127.0.0.1:<포트>` 또는 `emulator-<네 자리 숫자>`를 연결 주소로 사용합니다. - 방법 2: 기존 adb 연결 찾기 - 1. 방법 1을 시도합니다. - 2. `윈도우 키 + S`를 눌러 검색 창을 열고, `리소스 모니터`를 입력한 후 실행합니다. - 3. `네트워크` 탭으로 전환하고, 수신 대기 포트의 이름 열에서 에뮬레이터 프로세스명을 찾습니다. 예: `HD-Player.exe`. - 4. 에뮬레이터 프로세스의 모든 수신 대기 포트를 기록합니다. - 5. `TCP 연결`의 목록에서 `adb.exe`를 찾아, 원격 포트 열에서 에뮬레이터 수신 대기 포트와 일치하는 포트를 에뮬레이터 디버깅 포트로 사용합니다. + 1. 방법 1을 시도합니다. + 2. `윈도우 키 + S`를 눌러 검색 창을 열고, `리소스 모니터`를 입력한 후 실행합니다. + 3. `네트워크` 탭으로 전환하고, 수신 대기 포트의 이름 열에서 에뮬레이터 프로세스명을 찾습니다. 예: `HD-Player.exe`. + 4. 에뮬레이터 프로세스의 모든 수신 대기 포트를 기록합니다. + 5. `TCP 연결`의 목록에서 `adb.exe`를 찾아, 원격 포트 열에서 에뮬레이터 수신 대기 포트와 일치하는 포트를 에뮬레이터 디버깅 포트로 사용합니다. ::: @@ -124,8 +139,8 @@ MAA는 이제 레지스트리에서 `bluestacks.conf`의 저장 위치를 읽어 1. 블루스택 데이터 디렉토리에서 `bluestacks.conf` 파일을 찾습니다. - - 글로벌 버전 `C:\ProgramData\BlueStacks_nxt\bluestacks.conf` - - 중국 내륙 버전 `C:\ProgramData\BlueStacks_nxt_cn\bluestacks.conf` + - 글로벌 버전 `C:\ProgramData\BlueStacks_nxt\bluestacks.conf` + - 중국 내륙 버전 `C:\ProgramData\BlueStacks_nxt_cn\bluestacks.conf` 2. 처음 사용하는 경우, MAA를 한 번 실행하여 MAA가 자동으로 구성 파일을 생성하게 합니다. @@ -136,12 +151,12 @@ MAA는 이제 레지스트리에서 `bluestacks.conf`의 저장 위치를 읽어 ```json { - "Configurations": { - "Default": { - "Bluestacks.Config.Path": "C:\\ProgramData\\BlueStacks_nxt\\bluestacks.conf" - // 다른 구성 필드, 수동으로 입력하지 마세요. - } + "Configurations": { + "Default": { + "Bluestacks.Config.Path": "C:\\ProgramData\\BlueStacks_nxt\\bluestacks.conf" + // 다른 구성 필드, 수동으로 입력하지 마세요. } + } } ``` diff --git a/docs/ko-kr/manual/device/android.md b/docs/ko-kr/manual/device/android.md index 468887ff30..2117836801 100644 --- a/docs/ko-kr/manual/device/android.md +++ b/docs/ko-kr/manual/device/android.md @@ -11,6 +11,7 @@ icon: mingcute:android-fill ::: info 주의사항 +0. [연결 설정](../connection.md)을 동시에 참조해야 합니다. 1. Android 10부터 `Minitouch`는 `SELinux`가 `Enforcing` 모드인 경우 더 이상 사용할 수 없습니다. 다른 터치 모드로 전환하거나 `SELinux`를 일시적으로 `Permissive` 모드로 전환하세요. 2. Android 생태계가 매우 복잡하기 때문에 `MAA 설정` - `연결 설정`에서 `연결 구성`을 `일반 모드` 또는 `호환 모드` 또는 `두 번째 해상도` 또는 `일반 모드(이상 출력 차단)`로 변경하여 작동하는 모드를 찾을 수 있습니다. 3. MAA는 오직 `16:9` 비율의 해상도만 지원하므로, `16:9` 또는 `9:16` 화면 비율이 아닌 장치는 해상도를 강제로 변경해야 합니다. 이는 대부분의 현대적인 장치에 해당됩니다. 연결된 장치의 화면 비율이 원래 `16:9` 또는 `9:16`인 경우에는 해상도 변경 부분을 건너뛸 수 있습니다. diff --git a/docs/ko-kr/manual/device/linux.md b/docs/ko-kr/manual/device/linux.md index 0caa6ad147..0e2bdc25b9 100644 --- a/docs/ko-kr/manual/device/linux.md +++ b/docs/ko-kr/manual/device/linux.md @@ -13,6 +13,47 @@ icon: teenyicons:linux-alt-solid [maa-cli](https://github.com/MaaAssistantArknights/maa-cli)는 Rust로 작성된 간단한 MAA 커맨드 라인 도구입니다. 관련 설치 및 사용 방법은 [CLI 가이드](../cli/)를 참조하세요. +### Wine 사용 + +MAA WPF GUI는 현재 Wine을 통해 실행할 수 있습니다. + +#### 설치 단계 + +1. [.NET 릴리스 페이지](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)에서 Windows용 .NET **데스크톱** 런타임을 다운로드하고 설치합니다. + +2. Windows용 MAA를 다운로드하고 압축을 푼 후 `wine MAA.exe`를 실행합니다. + +::: info 주의 +연결 설정에서 ADB 경로를 [Windows용 `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip)로 설정해야 합니다. + +ADB를 통해 USB 장치에 연결해야 하는 경우, 먼저 Wine 외부에서 `adb start-server`를 실행하여 네이티브 ADB 서버에 Wine을 통해 연결하세요. +::: + +#### Linux 네이티브 MaaCore 사용 (실험적 기능) + +[MAA Wine Bridge](https://github.com/MaaAssistantArknights/MaaAssistantArknights/tree/dev/src/MaaWineBridge) 소스 코드를 다운로드하고 빌드하여, 생성된 `MaaCore.dll`(ELF 파일)로 Windows 버전을 교체하고, Linux 네이티브 동적 라이브러리(`libMaaCore.so` 및 종속성)를 같은 디렉토리에 넣습니다. + +이때 Wine을 통해 `MAA.exe`를 실행하면 Linux 네이티브 동적 라이브러리가 로드됩니다. + +::: info 주의 +Linux 네이티브 MaaCore를 사용할 때는 연결 설정에서 ADB 경로를 Linux 네이티브 ADB로 설정해야 합니다. +::: + +#### Linux 데스크톱 통합 (실험적 기능) + +데스크톱 통합은 네이티브 데스크톱 알림 지원과 fontconfig 글꼴 구성을 WPF에 매핑하는 기능을 제공합니다. + +MAA Wine Bridge에서 생성된 `MaaDesktopIntegration.so`를 `MAA.exe`와 같은 디렉토리에 넣으면 활성화됩니다. + +#### 알려진 문제 + +- Wine DirectWrite는 강제로 힌팅을 활성화하고 DPI를 FreeType에 전달하지 않아 글꼴 표시 효과가 좋지 않습니다. +- 네이티브 데스크톱 알림을 사용하지 않을 때, 팝업 알림이 전체 시스템의 마우스 포커스를 빼앗아 다른 창을 조작할 수 없게 됩니다. `winecfg`를 통해 가상 데스크톱 모드를 활성화하거나 데스크톱 알림을 비활성화하여 완화할 수 있습니다. +- Wine-staging 사용자는 MAA가 Wine 환경을 올바르게 감지할 수 있도록 `winecfg`의 `Wine 버전 숨기기` 옵션을 비활성화해야 합니다. +- Wine의 Light 테마는 WPF에서 일부 텍스트 색상 이상을 일으키므로, `winecfg`에서 테마 없음(Windows 클래식 테마)으로 전환하는 것을 권장합니다. +- Wine은 구식 XEmbed 트레이 아이콘을 사용하므로 GNOME에서 정상적으로 작동하지 않을 수 있습니다. +- Linux 네이티브 MaaCore를 사용할 때는 자동 업데이트가 지원되지 않습니다 (~~업데이트 프로그램: 내가 Windows 버전을 다운로드해야 한다고?~~) + ### Python 사용 #### 1. MAA 동적 라이브러리 설치 @@ -64,7 +105,7 @@ icon: teenyicons:linux-alt-solid 사용자 정의 작업: [통합 문서](../../protocol/integration.md)를 참조하고, `sample.py`의 # 작업 및 매개 변수는 [예제](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54)를 참조해 줄을 수정하세요. -## 모바일 시뮬레이터 지원 +## 모바일 에뮬레이터 지원 ### ✅ [AVD](https://developer.android.com/studio/run/managing-avds) diff --git a/docs/ko-kr/manual/device/macos.md b/docs/ko-kr/manual/device/macos.md index fa988e2ad6..d3d7970111 100644 --- a/docs/ko-kr/manual/device/macos.md +++ b/docs/ko-kr/manual/device/macos.md @@ -5,10 +5,6 @@ icon: basil:apple-solid # Mac 지원 -::: tip -문제가 발생하면 [FAQ](../faq.md)를 먼저 참조하세요. -::: - ## Apple Silicon 칩셋 ### ✅ [PlayCover](https://playcover.io)(제일 부드럽습니다! 🚀) diff --git a/docs/ko-kr/manual/faq.md b/docs/ko-kr/manual/faq.md index 70ee77bebb..62d4779dec 100644 --- a/docs/ko-kr/manual/faq.md +++ b/docs/ko-kr/manual/faq.md @@ -25,7 +25,7 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore ::: -## 소프트웨어 실행 불가능/크래쉬/오류 발생 +## 소프트웨어 실행 불가능/크래시/오류 발생 ### 다운로드/설치 문제 @@ -81,17 +81,9 @@ Windows 7에서 .NET 8 애플리케이션을 실행할 때 메모리 사용량 사용 중인 에뮬레이터가 지원하는지, 확인하려면 다음 문서를 참조하세요. [Windows 지원 목록](./device/windows.md) ::: -### adb 및 연결 주소 확인 +### ADB 및 연결 주소 확인 -- MAA의 `설정` - `연결 설정` - `adb 경로`가 채워졌는지 확인하세요. 이미 채워져 있다면 이 단계를 건너뛰세요. - -::: details 미 입력시 - -- 에뮬레이터의 설치 경로를 찾으세요. Windows에서는 작업 관리자에서 에뮬레이터를 실행한 후 프로세스를 마우스 오른쪽 클릭하여 `파일 위치 열기`를 선택할 수 있습니다. -- 최상위 또는 하위 폴더에는 일반적으로 adb.exe가 있을 것입니다. 해당 파일을 선택하세요! (이름이 정확히 일치하지 않을 수 있습니다. 예를 들어 `nox_adb.exe`, `HD-adb.exe`, `adb_server.exe` 등이 있을 수 있습니다. 어쨌든 adb가 들어간 이름의 exe 파일입니다) -::: - -- 연결 주소가 올바르게 입력되었는지 확인하세요. 사용 중인 에뮬레이터의 adb 디버깅 주소를 인터넷에서 검색하세요. 일반적으로 127.0.0.1:5555와 같은 형식입니다. (단, LDPlayer는 예외입니다) +[연결 설정](./connection.md)을 참조하세요. #### 에뮬레이터의 연결 포트 @@ -125,6 +117,8 @@ adb 버전이 다를 경우, 새로 시작된 프로세스가 이전 프로세 일부 가속기는 가속을 시작하거나 중지한 후 MAA, ADB 및 에뮬레이터를 다시 연결해야 합니다. +UU 가속기와 MuMu 12를 동시에 사용할 경우 [공식 문서](https://mumu.163.com/help/20240321/35047_1144608.html)를 참고하세요. + ### 컴퓨터 다시 시작 재부팅은 97%의 문제를 해결합니다. (확신합니다) @@ -178,7 +172,7 @@ Pie64_2 코어: (코어 이름 뒤의 숫자는 멀티 오픈 코어를 나타 MAA는 이제 레지스트리에서 `bluestacks.conf`의 위치를 읽으려고 시도합니다. 이 기능이 작동하지 않으면 설정 파일 경로를 수동으로 지정해야 합니다. ::: -1. 블루스택 시뮬레이터 데이터 디렉터리에서 `bluestacks.conf` 파일을 찾으세요. +1. 블루스택 에뮬레이터 데이터 디렉터리에서 `bluestacks.conf` 파일을 찾으세요. - 국제 버전의 기본 경로는 `C:\ProgramData\BlueStacks_nxt\bluestacks.conf`입니다. - 중국 본토 버전의 기본 경로는 `C:\ProgramData\BlueStacks_nxt_cn\bluestacks.conf`입니다. @@ -208,8 +202,8 @@ MAA는 이제 레지스트리에서 `bluestacks.conf`의 위치를 읽으려고 - `UI 위치 조절`을 사용하는 경우 0으로 설정하세요. - 국가 별 클라이언트를 플레이하는 경우 먼저 `설정` - `게임 설정` - `클라이언트 유형`에서 `클라이언트 버전`을 선택하세요. 해외 클라이언트의 경우 일부 기능이 완전히 호환되지 않을 수 있으므로 해당 해외 클라이언트 사용 설명서를 참조하세요. - 통합전략 기능을 사용할 경우, [사용자 설명서](./introduction/integrated-strategy.md)를 참조하고 `통합전략` - `테마`에서 올바른 테마를 선택하세요 -- 자동 전투가 자주 일시 정지되고 운용자가 배치되지 않으면 `설정` - `실행 설정`에서 `일시정지 상태로 배치하기`를 비활성화하세요. -- 자동 배치가 운용자를 제대로 인식하지 못할 경우, 해당 운용자의 특별 주의를 취소하세요. +- 자동 전투가 자주 일시 정지되고 오퍼레이터가 배치되지 않으면 `설정` - `실행 설정`에서 `일시정지 상태로 배치하기`를 비활성화하세요. +- 자동 배치가 오퍼레이터를 제대로 인식하지 못할 경우, 해당 오퍼레이터의 즐겨찾기를 해제하세요. - `Adb Input` 터치 모드 작업이 느린 것은 정상입니다. Copilot 기능이 필요한 경우 다른 모드로 전환해 보세요. ### 스크린샷 촬영이 오래 걸리거나 오랜 시간이 걸립니다 @@ -217,7 +211,7 @@ MAA는 이제 레지스트리에서 `bluestacks.conf`의 위치를 읽으려고 - MAA는 현재 `RawByNc`, `RawWithGzip`, `Encode` 세 가지 방법으로 스크린샷을 지원하며 평균 스크린샷 시간이 400/800보다 클 때 한 번의 메시지를 출력합니다. (한 번의 작업에서 한 번만 메시지를 출력합니다) - `설정` - `연결 설정`에서 최근 30회 스크린샷 시간의 최소/평균/최대값을 표시하며 10회마다 스크린샷이 새로 고침됩니다. - Copilot(자동 전투) 기능은 스크린샷 시간에 크게 영향을 받습니다. -- 이 시간은 MAA와 관련이 없으며 컴퓨터 성능, 현재 사용률 또는 시뮬레이터에 따라 달라집니다. 백그라운드를 정리하거나 시뮬레이터를 변경하거나 컴퓨터 구성을 업그레이드하는 등의 조치를 취해보세요. +- 이 시간은 MAA와 관련이 없으며 컴퓨터 성능, 현재 사용률 또는 에뮬레이터에 따라 달라집니다. 백그라운드를 정리하거나 에뮬레이터를 변경하거나 컴퓨터 구성을 업그레이드하는 등의 조치를 취해보세요. ## 관리자 권한 관련 문제 @@ -232,4 +226,4 @@ UAC가 비활성화된 시스템에서는 "우클릭하여 관리자 권한으 ## 중간에 다운로드 중 "로그인"/"인증" 메시지가 표시됩니다 -브라우저 / IDM / FDM 등의 다운로드 관리자를 사용하여 파일을 다운로드하세요. **위쳐를 사용하지 마세요!** +브라우저 / IDM / FDM 등의 다운로드 관리자를 사용하여 파일을 다운로드하세요. **웨이더를 사용하지 마세요!** diff --git a/docs/ko-kr/manual/introduction/combat.md b/docs/ko-kr/manual/introduction/combat.md index ea24c1cef2..00de656155 100644 --- a/docs/ko-kr/manual/introduction/combat.md +++ b/docs/ko-kr/manual/introduction/combat.md @@ -9,7 +9,7 @@ icon: hugeicons:brain-02 - `이성 사용`의 일반 설정에있는 `이성 회복제 사용 + 순오리지늄 사용`과 `횟수 제한` 및 `드롭 제한` 세 가지 옵션은 하나만 만족해도 종료가 됩니다. - - `이성 회복제` 는 특정 횟수의 이성 회족제를 사용해 이성을 회복합니다. (연속으로 이성회복제 사용이 가능합니다) + - `이성 회복제 사용` 은 특정 횟수의 이성 회복제를 사용해 이성을 회복합니다. (연속으로 이성 회복제 사용이 가능합니다) - `순오리지늄` 은 특정 횟수의 순오리지늄을 사용하며, 이성 회복제가 남아있을 경우 사용되지 않습니다. - `횟수 제한` 은 선택한 스테이지를 몇번 클리어 할 지 정합니다. (예시: 15번 클리어 후 정지) - `드롭 제한` 은 특정 재화를 몇개 획득할 지 정합니다. (5개의 장치 획득 후 정지) @@ -42,7 +42,7 @@ icon: hugeicons:brain-02 - 해당 화면이 아닌 경우 `현재/이전`은 자동으로 가장 최근에 실행한 스테이지로 이동합니다. - 또는 작업 `설정` - `이성 사용` - `고급 설정`에서 `스테이지 코드 수동 입력`을 체크해 스테이지 코드를 직접 입력할 수 있습니다. 현재 내비게이션할 수 있는 스테이지는 다음과 같습니다: - 모든 메인 스토리 스테이지. 표준 또는 어려움 난이도를 전환하려면 스테이지 코드 뒤에 -NORMAL 또는 -HARD를 추가하세요. - - 용문폐 혹은 작전 기록의 5/6스테이지는 `CE-6`/`LS-6`를 입력해야 합니다. MAA는 6 스테이지가 대리 지휘가 불가능할 경우자동으로 5 스테이지로 전환합니다. + - 용문폐 혹은 작전 기록의 5/6스테이지는 `CE-6`/`LS-6`를 입력해야 합니다. MAA는 6스테이지가 대리 지휘가 불가능할 경우 자동으로 5스테이지로 전환합니다. - 스킬 북, 구매 증명서, 카본 부품 5스테이지는 `CA-5`/`AP-5`/`SK-5`를 입력해야 합니다. - 모든 칩 스테이지. 완전한 스테이지 코드를 입력해야 합니다. 예: `PR-A-1`. - 섬멸 모드는 다음 값을 지원합니다: @@ -72,9 +72,9 @@ icon: hugeicons:brain-02 대체 스테이지는 해당 일자의 개방 여부에 따라 실제 전투에 사용될 스테이지를 결정합니다. 즉, 열려 있는 스테이지 중 첫 번째 것을 선택하여 전투를 수행합니다. 이 기능은 일정표와 유사하며, 선택한 스테이지가 실패했을 경우를 대비한 백업 스테이지로 작동하지 않습니다. -1. 예: 기본 스테이지를 `룽먼 코인-6/5`로 설정하고, 대체 스테이지로 `1-7` 및 `경험치-6/5`를 설정한 경우: - - 당일 `룽먼 코인-6/5`가 개방되어 있다면 해당 스테이지로 진입하며, `1-7` 및 `경험치-6/5`는 실행되지 않습니다. 이때 플레이어가 `룽먼 코인-6/5` 대리를 해제한 경우 작업은 실패합니다. - - 당일 `룽먼 코인-6/5`가 개방되어 있지 않다면 `1-7`으로 진입하며, `경험치-6/5`는 실행되지 않습니다. 이때 `1-7` 대리를 해제한 경우에도 작업은 실패합니다. +1. 예: 기본 스테이지를 `용문폐-6/5`로 설정하고, 대체 스테이지로 `1-7` 및 `경험치-6/5`를 설정한 경우: + - 당일 `용문폐-6/5`가 개방되어 있다면 해당 스테이지로 진입하며, `1-7` 및 `경험치-6/5`는 실행되지 않습니다. 이때 플레이어가 `용문폐-6/5` 대리를 해제한 경우 작업은 실패합니다. + - 당일 `용문폐-6/5`가 개방되어 있지 않다면 `1-7`으로 진입하며, `경험치-6/5`는 실행되지 않습니다. 이때 `1-7` 대리를 해제한 경우에도 작업은 실패합니다. - `1-7`은 상시 개방된 스테이지이므로, 그 앞에 위치한 `경험치-6/5`는 절대 선택되지 않습니다. 2. 기본 스테이지가 `섬멸 모드`인 경우: @@ -94,27 +94,27 @@ icon: hugeicons:brain-02 MAA는 사용자가 설정한 연속 전투 횟수에 따라 전투를 진행합니다. -- **자동 모드** (0): - - 레벨 내 최대 연속 전투 횟수를 자동으로 파악하고, 최대 연속 전투 횟수를 유지하며, 정신력을 초과하지 않습니다. - - 완료 후 `잔여 정신력` 프로세스 시작(설정된 경우) +- **AUTO** (0): + - 레벨 내 최대 연속 전투 횟수를 자동으로 파악하고, 최대 연속 전투 횟수를 유지하며, 이성을 초과하지 않습니다. + - 완료 후 `남은 이성` 프로세스 시작(설정된 경우) - **숫자 모드** (1~6): - 설정된 횟수에 따라 연속 전투를 진행합니다. - - 현재 정신력이 설정된 횟수를 완료하기에 충분하지 않은 경우(예: 5회만 가능하지만 6회로 설정된 경우), 작업을 바로 종료하고 `잔여 정신력` 프로세스(설정된 경우)를 시작합니다. + - 현재 이성이 설정된 횟수를 완료하기에 충분하지 않은 경우(예: 5회만 가능하지만 6회로 설정된 경우), 작업을 바로 종료하고 `남은 이성` 프로세스(설정된 경우)를 시작합니다. - **비활성 모드** (-1): - 게임 내 연속 전투 횟수를 조정하지 않습니다. - - 정신력이 현재 설정된 횟수를 완료하기에 충분하지 않은 경우 작업을 바로 종료하고 `잔여 정신력` 프로세스(설정된 경우)를 시작합니다. + - 이성이 현재 설정된 횟수를 완료하기에 충분하지 않은 경우 작업을 바로 종료하고 `남은 이성` 프로세스(설정된 경우)를 시작합니다. ### 지정된 횟수 MAA는 지정된 횟수만큼 전투를 수행합니다. -예: 현재 정신력이 100이고 레벨업에 정신력 6이 소모된다고 가정합니다. +예: 현재 이성이 100이고 레벨업에 이성 6이 소모된다고 가정합니다. -- 지정된 횟수가 10으로 설정되고 대리 배율이 4로 설정된 경우: 2(시작 행동) x 4(대리 배율) = 8번의 작업이 수행되며(2 x 플로어(10 / 4) = 8), 8 x 6 = 48의 정신력이 소모됩니다. 이때, 4배 프록시를 다시 실행하면 12회 작업이 발생하여 설정된 10회를 초과하므로 더 이상 실행되지 않고, 미션은 8회 작업으로 종료됩니다. +- 지정된 횟수가 10으로 설정되고 대리 배율이 4로 설정된 경우: 2(시작 행동) x 4(대리 배율) = 8번의 작업이 수행되며(2 x 플로어(10 / 4) = 8), 8 x 6 = 48의 이성이 소모됩니다. 이때, 4배 프록시를 다시 실행하면 12회 작업이 발생하여 설정된 10회를 초과하므로 더 이상 실행되지 않고, 미션은 8회 작업으로 종료됩니다. -- 지정된 횟수는 10회로 설정되고, 프록시 배수는 AUTO로 설정됩니다. 6배 프록시 1회 + 4배 프록시 1회 = 10회 작업이 실행됩니다(6 * floor(10 / 6) + (10 % 6) = 10). 따라서 10 x 6 = 60의 정신력이 소모됩니다. +- 지정된 횟수는 10회로 설정되고, 프록시 배수는 AUTO로 설정됩니다. 6배 프록시 1회 + 4배 프록시 1회 = 10회 작업이 실행됩니다(6 * floor(10 / 6) + (10 % 6) = 10). 따라서 10 x 6 = 60의 이성이 소모됩니다. ### 드롭 인식 diff --git a/docs/ko-kr/manual/introduction/copilot.md b/docs/ko-kr/manual/introduction/copilot.md index 7b174b83ed..5a4253445f 100644 --- a/docs/ko-kr/manual/introduction/copilot.md +++ b/docs/ko-kr/manual/introduction/copilot.md @@ -8,7 +8,7 @@ icon: ph:sword-bold [prts.plus](https://prts.plus)에서 이용해 다운로드/업로드 및 제작할 수 있습니다! ::: warning -자동 전투와 관련된 모든 기능에는 60프레임 이상의 안정적인 게임 프레임 속도가 필요합니다. +자동 전투와 관련된 모든 기능에는 60프레임 이상의 안정적인 게임 프레임 레이트가 필요합니다. ::: ## 작업 불러오기 @@ -18,7 +18,7 @@ Copilot은 `일반/이벤트 스테이지` 및 `보안파견` 등을 지원합 - 이 기능을 사용하려면 전투 준비 화면에서 `작전 개시` 버튼이 있는 곳에서 시작해야 합니다. 그런 다음 MAA의 `자동지휘` 칸에서 `JSON 파일`을 가져오거나 [prts.plus](https://prts.plus)와 같은 사이트에서 코드를 입력하면 됩니다. - `자동 편성` 기능은 현재 편성을 초기화하고, 작업에 필요한 오퍼레이터를 자동으로 편성합니다. - - 자동 배치에 해당하는 운용자의 특별 주의를 취소해야 합니다. + - 자동 배치에 해당하는 오퍼레이터의 즐겨찾기를 해제해야 합니다. - `맞춤 오퍼레이터 추가`및 `신뢰도가 낮은 오퍼레이터 추가`도 할 수 있습니다. - `지원 유닛`을 사용하거나, 자동 편성이 불가능할 경우 수동 편성도 가능합니다. - `패러독스 시뮬레이션`의 경우 `자동 편성`을 사용하면 안됩니다! 스킬을 수동 선택 후 `시뮬레이션 시작` 버튼이 있는 화면에서 실행하세요. @@ -39,5 +39,5 @@ Copilot은 `일반/이벤트 스테이지` 및 `보안파견` 등을 지원합 - 파일 작성기에서 스테이지를 입력한 후, 왼쪽 하단에 자동으로 확대/축소 가능한 좌표 지도가 표시됩니다. 오퍼레이터 위치를 클릭하여 설정할 수 있습니다. - 스테이지를 입력하고 JSON을 내보낸 후, 시작 버튼을 누르면 MAA 폴더의 `debug\map`에 좌표 정보가 포함된 지도 스크린샷이 생성됩니다. - [PRTS.Map](https://map.ark-nights.com/areas)은 `설정`에서 `좌표 표시`를 `MAA`로 변경하고 사용할 수 있습니다 -- 훈련 모드를 지원합니다. +- 연습 모드를 지원합니다. - 파일 설명에는 귀하의 서명(작성자 이름), 참고하는 공략 비디오 링크, 기타 의견 등을 기입하는 것이 좋습니다! diff --git a/docs/ko-kr/manual/introduction/credit.md b/docs/ko-kr/manual/introduction/credit.md index 891b805cca..f266996942 100644 --- a/docs/ko-kr/manual/introduction/credit.md +++ b/docs/ko-kr/manual/introduction/credit.md @@ -13,4 +13,4 @@ icon: solar:shop-2-bold ## 고급 설정 - 화이트 리스트와 블랙 리스트는 모두 키워드 매칭입니다. 예를 들어 `카본`을 입력하면 `카본 번들`과 `카본` 둘다 매칭됩니다. -- `크레딧 포인트 300 미만 시 구매 X` 크레딧이 300보다 낮을 때에도 화이트리스트 상품은 구매합니다. +- `크레딧 300 미만 시 구매 X` 크레딧이 300보다 낮을 때에도 화이트리스트 상품은 구매합니다. diff --git a/docs/ko-kr/manual/introduction/infrastructure.md b/docs/ko-kr/manual/introduction/infrastructure.md index 050ab60df7..89d851badc 100644 --- a/docs/ko-kr/manual/introduction/infrastructure.md +++ b/docs/ko-kr/manual/introduction/infrastructure.md @@ -22,7 +22,7 @@ icon: material-symbols:view-quilt-rounded - `드론 사용처`가 `무역소-용문폐`로 지정되어 있을 경우, `샤마르`를 인식하고 드론을 아껴둘 것입니다. - 응접실에서 단 한 종류의 단서가 부족하다면 해당 진영의 오퍼레이터가 선택됩니다. 그렇지 않은 경우 일반적인 오퍼레이터가 선택됩니다. - 응접실이 꽉 차 있을 때만 단서를 내보낼 것입니다. 최대 3개의 단서가 전달됩니다. `resource/tasks/tasks.json`에서 `ClueSelected`-`maxTimes` 필드를 수정해 단서의 전달 개수를 조절할 수 있습니다. -- `아이린`, `로고스`나 다른 오퍼레이터가 당장 업무 중이 아니라는 이유로 숙소로 보내지는 것을 원치 않는다면, `이미 배치된 오퍼레이터를 숙소에 넣지 않기` 옵션을 활성화할 수 있습니다. 단, 컨디션이 0이 아닌 한 어떤 오퍼레이터도 숙소로 들어오지 못하게 되는 문제를 불러올 수도 있습니다. +- `아이린`, `로고스`나 다른 오퍼레이터가 당장 업무 중이 아니라는 이유로 숙소로 보내지는 것을 원치 않는다면, `업무중인 오퍼레이터 숙소 배치 제한` 옵션을 활성화할 수 있습니다. 단, 컨디션이 0이 아닌 한 어떤 오퍼레이터도 숙소로 들어오지 못하게 되는 문제를 불러올 수도 있습니다. - 제어 센터의 복잡성으로 인해서, `아미야`, `스와이어`, `켈시`, `레인보우 팀`과 기타 시간당 컨디션 +0.05 오퍼레이터만이 고려됩니다. 향후 개선될 예정입니다. - 필요한 시설 유형만 선택해 MAA가 처리하도록 할 수 있습니다. 기본값은 모두 선택되어있습니다 @@ -33,4 +33,4 @@ icon: material-symbols:view-quilt-rounded ## 커스텀 기반시설 - MAA 폴더의 `/resource/custom_infrast/`에는 이론적 최대 효율의 작업 몇 개가 내장되어 있습니다. 오퍼레이터 인원 수 및 육성의 요구 사항이 매우 높기 때문에 직접 사용하는 것은 권장하지 않습니다. -- Yituliu의 JSON 생성기를 참고해서 작성하세요. [기반시설 JSON 생성기](https://ark.yituliu.cn/tools/schedule), [기반시설 스키마 문서](../../protocol/base-scheduling-schema.md)도 참조하세요. +- Yituliu의 JSON 생성기를 참고해서 작성하세요. [기반시설 JSON 생성기](https://ark.yituliu.cn/tools/schedule), [기반시설 프로토콜 문서](../../protocol/base-scheduling-schema.md)도 참조하세요. diff --git a/docs/ko-kr/manual/introduction/integrated-strategy.md b/docs/ko-kr/manual/introduction/integrated-strategy.md index 1bfb15d080..a9a0041729 100644 --- a/docs/ko-kr/manual/introduction/integrated-strategy.md +++ b/docs/ko-kr/manual/introduction/integrated-strategy.md @@ -7,24 +7,55 @@ icon: ri:game-fill MAA는 기본적으로 가장 최신의 테마를 선택하며, `통합전략` - `일반 설정`에서 변경할 수 있습니다. +::: warning +자동 전투가 포함된 모든 기능은 최소 60프레임의 안정적인 게임 프레임 레이트가 필요합니다. 여기에는 Copilot 및 자동 통합전략이 포함됩니다. +::: + - 게임 내에서 해당 통합전략 테마를 터미널에서 고정(`PIN`)해주세요. 현재 자동 탐색이 가능하지만 장기적인 사용을 보장할 수는 없습니다. -- 대상이 아닌 테마를 탐색하는 도중인 경우(예: 미즈키를 하려고 하는데, 팬텀이 아직 클리어되지 않은 경우) 수동으로 종료해주세요. -- MAA는 난이도를 자동으로 선택하지 않습니다. 난이도가 선택되지 않은 경우에는 난이도 선택 인터페이스에 갇히거나 반복해서 들어가고 나갈 수 있습니다. -- 설정에서 팀, 시작 오퍼레이터(하나의 오퍼레이터만 가능) 등을 선택할 수 있습니다. +- **목표가 아닌 테마**의 탐험을 미리 수동으로 종료하여 목표 테마가 현재 탐험을 시작할 수 있는지 확인하세요. +- 설정에서 테마, 난이도, 분대, 시작 오퍼레이터(하나의 오퍼레이터만 가능) 등을 선택할 수 있습니다. +- MAA는 지원 유닛을 사용하여 시작할 수 있습니다. 먼저 `일반 설정` → `시작 오퍼레이터`에 목표 오퍼레이터 이름을 입력하고, `고급 설정` → `「시작 오퍼레이터」로 지원 유닛 사용`을 활성화하세요. +- 새로 설치된 클라이언트에서 **처음** 플레이할 때: + - 난이도 선택 버튼이 표시되지 않습니다. 게임 내에서 수동으로 한 번 난이도를 선택하면 이후 MAA가 자동으로 선택할 수 있습니다. + - 대지도 등의 인터페이스에 진입한 후 초보자 튜토리얼이 나타납니다. 읽은 후 수동으로 닫아주세요. + +## 추천 시작법 + +::: details _최종 업데이트: 2025/8/2_ + +| 테마 | 난이도 | 분대 | 직업군 | 오퍼레이터 | +| ------ | ----------------- | ----------------------------------- | -------- | ---------- | +| 팬텀 | 정식 수사·3~7 | 지휘 분대 / 강습 전술 분대 | 상호보완 | 쏜즈 | +| 미즈키 | 일렁이는 파도·3~7 | 인적 자원 분대 / 마음가짐 분대 | 차근차근 | 위셔델 | +| 사미 | 자연에 도전·4~10 | 특훈 분대 / 원거리 전술 분대 | 차근차근 | 위셔델 | +| 살카즈 | 영혼 직면·4~10 | 설계도 제작 분대 / 원거리 전술 분대 | 차근차근 | 위셔델 | +| 쉐이 | 입장 환영·3~10 | 지휘 분대 / 원거리 전술 분대 | 차근차근 | 위셔델 | + +난이도 추천은 `적 난이도`, `희망 소모`, `점수 배율` 등의 요소를 종합적으로 고려하여, 육성이 잘된 계정의 테스트에서 비교적 안정적이므로 실제 상황과 필요에 따라 자유롭게 조정할 수 있습니다. + +| 테마 | 비고 | +| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 팬텀 | `정식 수사·4` 이상의 난이도에서 시작하면 희망 감소 수집품을 얻어 시작 시 6성 오퍼레이터를 모집할 수 없을 수 있습니다. | +| 미즈키 | `일렁이는 파도·4` 이상의 난이도에서 6성 오퍼레이터 모집 희망 소모+1이므로 `마음가짐 분대`를 사용하면 시작 시 6성 오퍼레이터를 모집할 수 없을 수 있습니다.
`인적 자원 분대`는 계정 육성도가 높은 상황에 적합하고, `마음가짐 분대`는 운에 의존해야 합니다. | +| 사미 | `자연에 도전·6` 이상의 난이도에서 6성 오퍼레이터 모집 희망 소모+1이므로 `특훈 분대`를 사용하면 시작 시 6성 오퍼레이터를 모집할 수 없을 수 있습니다. | +| 살카즈 | `영혼 직면·6` 이상의 난이도에서 6성 오퍼레이터 모집 희망 소모+1이므로 `설계도 제작 분대`를 사용하면 시작 시 6성 오퍼레이터를 모집할 수 없을 수도 있습니다.
`원거리 전술 분대`는 `원거리딜러`의 2정 캐릭터가 모두 제공되므로 육성도가 낮아도 안정적입니다. | +| 쉐이 | 난이도별 희망 소모량에 큰 차이가 없어 상당히 높은 난이도도 선택할 수 있습니다. | + +::: ## 전투 전략 -자동 전투 중의 모든 작업은 미리 설정된 전략이며, 모든 스테이지 전투는 내장된 작업 파일을 호출합니다. 해당 단계 작업이 존재하지 않을 경우, 그다지 스마트하지 않은 일반 결정 트리가 전투에 사용됩니다. +자동 전투 중의 모든 작업은 미리 설정된 전략이며, 모든 스테이지 전투는 내장된 작업 파일을 호출합니다. 해당 단계 작업이 존재하지 않을 경우, 그다지 똑똑하지 않은 일반 결정 로직이 전투에 사용됩니다. 자세한 내용은 [통합전략 스키마](../../protocol/integrated-strategy-schema.md)를 참고하세요. -- 오퍼레이터와 숙련도를 자동으로 인식하고 더 나은 오퍼레이터와 기술을 자동으로 선택합니다. +- 오퍼레이터와 숙련도를 자동으로 인식하고 더 나은 오퍼레이터와 스킬을 자동으로 선택합니다. - 상점 아이템을 식별하고 더 좋은 수집품을 우선적으로 구매합니다. ## 비정상 상황 감지 (대처) - 연결이 끊긴 후 다시 연결을 지원하며, 새벽 4시 업데이트 이후에 통합전략을 계속 할 수 있습니다. -- 전투가 5분 이상 완료되지 않을 경우, 모든 지상 부대가 자동으로 철수됩니다. 고착 상태가 6분 이상 지속되면 현재 전투를 자동으로 포기됩니다. +- 전투가 5분 이상 완료되지 않을 경우, 모든 오퍼레이터가 자동으로 철수됩니다. 고착 상태가 6분 이상 지속되면 현재 전투를 자동으로 포기됩니다. - 작업이 멈추면 자동으로 탐색을 포기하고 재시도합니다. 그러나 특정 부분에서 자주 멈추고 포기해 효율에 심각한 영향을 미친다면, 피드백을 제공하기 위해 언제든지 문제를 제출해주세요. diff --git a/docs/ko-kr/manual/introduction/others.md b/docs/ko-kr/manual/introduction/others.md index 73dfc6a3d0..3ede6f9310 100644 --- a/docs/ko-kr/manual/introduction/others.md +++ b/docs/ko-kr/manual/introduction/others.md @@ -5,11 +5,25 @@ icon: icon-park-solid:other # Others +## GPU 가속 추론 + +DirectML을 사용하여 GPU를 호출하여 인식 추론을 가속화합니다[PR](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/9236). 적은 GPU 사용량으로 CPU 사용량을 크게 줄일 수 있으므로 활성화하는 것을 권장합니다. + +테스트 결과, 일부 그래픽 카드는 기능 부족이나 성능 저하로 인해 이 기능을 사용할 때 인식 문제가 발생할 수 있습니다. MAA에는 이미 일부 GPU 블랙리스트가 내장되어 있습니다[PR1](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/9990)[PR2](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12134). 목록에 없는 그래픽 카드에서 이 기능을 활성화한 후 인식 문제가 발생하면 Issue를 제출해 주세요. + +## 한 번만 + +메인 인터페이스와 설정의 구성 변경은 일반적으로 자동으로 저장되지만 다음은 MAA 재시작 후 재설정됩니다. + +- `*` 표시가 있는 옵션 +- `(한 번만)` 표시가 있는 옵션 +- 체크박스를 우클릭하여 얻은 반선택 상태 + ## 시작 시 자동으로 구성 변경 -MAA는 시작 매개변수를 통해 구성을 자동으로 전환할 수 있습니다. MAA 프로세스 이름 뒤에 `--config <구성 이름>`을 추가하면 됩니다. 예: `./MAA/MAA.exe --config 공식서버` +MAA는 시작 매개변수를 통해 구성을 자동으로 전환할 수 있습니다. MAA 프로세스 이름 뒤에 `--config <구성 이름>`을 추가하면 됩니다. 예: `./MAA/MAA.exe --config Official` -일부 기호는 이스케이프해야 합니다. `Json` 참조하세요. 예를 들어 구성 이름이 `"공식서버"`인 경우 매개변수는 --config `\"공식서버\"`가 되어야 합니다 +일부 기호는 이스케이프해야 합니다. `Json` 참조하세요. 예를 들어 구성 이름이 `"Official"`인 경우 매개변수는 --config `\"Official\"`가 되어야 합니다 ## 시작 전/후 스크립트 diff --git a/docs/ko-kr/manual/introduction/tools.md b/docs/ko-kr/manual/introduction/tools.md index 2305d2de33..c3d80037d5 100644 --- a/docs/ko-kr/manual/introduction/tools.md +++ b/docs/ko-kr/manual/introduction/tools.md @@ -43,7 +43,7 @@ JSON 스키마와 통합을 희망하는 경우 언제든지 문의해주세요. 니우니우 항공을 탈 기회를 놓쳤나요? 걱정 마세요! 이제 모두가 자신의 니우니우 항공을 가지고 있어요! 그리고 헤드헌팅 과정 중에는 스크린샷이 찍혀서 자동적으로 인터페이스 중앙에 표시될 거에요! -## Peep +## 모니터링 MAA의 눈을 통해 세상을 보고 싶나요? 이제 그것이 왔습니다! diff --git a/docs/ko-kr/manual/newbie.md b/docs/ko-kr/manual/newbie.md index fca0a27f89..e338a17924 100644 --- a/docs/ko-kr/manual/newbie.md +++ b/docs/ko-kr/manual/newbie.md @@ -39,11 +39,11 @@ icon: ri:guide-fill ## 초기 설정 -0. 자동 감지 기능을 사용하려면, 하나의 에뮬레이터만 설치되어 있고 멀티 인스턴스 기능을 사용안해야 합니다. +0. 자동 감지 기능을 사용하려면, 하나의 에뮬레이터만 설치되어 있고 멀티 인스턴스 기능을 사용하지 않아야 합니다. 1. 설정 지침을 따라 설정합니다. 멀티 인스턴스를 실행할 필요가 없다면 연결 설정을 변경할 필요는 없습니다. 멀티 인스턴스를 사용할 경우 [연결 설정](./connection.md)을 확인하세요. -2. MAA를 처음 실행하면 리소스 업데이트가 진행됩니다. 오른쪽 로그에서 재시작 메시지가 나오면 MAA를 종료하고 다시 시작하세요. +2. ~~MAA를 처음 실행하면 리소스 업데이트가 진행됩니다. 오른쪽 로그에서 재시작 메시지가 나오면 MAA를 종료하고 다시 시작하세요.~~ 3. 왼쪽의 작업 목록을 드래그하여 작업 순서를 정리하고, 체크박스를 선택하거나 해제하여 실행할 작업을 선택하세요. @@ -55,7 +55,11 @@ icon: ri:guide-fill ## 기타 정보 -- **문제가 발생하면 문서를 여러 번 읽어보세요** +::: center +**문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요** +**문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요** +**문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요**    **문제가 발생하면 문서를 여러 번 읽어보세요** +::: 1. 실행 로그는 MAA 폴더 내 debug 폴더에 있습니다. 로그는 매우 중요합니다. 다른 사람에게 도움을 요청할 때는 반드시 `asst.log`와 `gui.log`를 함께 제공하세요. @@ -65,4 +69,4 @@ icon: ri:guide-fill 4. 일부 체크박스의 경우, 오른쪽 클릭으로 임시 선택 상태로 변경할 수 있습니다. 이 상태의 체크박스는 MAA가 다음에 시작될 때 자동으로 해제됩니다. 이는 `한번 만` 실행됩니다. -5. 문제가 뭔지 모르고, 어떻게 해야할 지 모르겠다면, 베타 및 개발버전을 사용하지 마세요. +5. ~~문제가 뭔지 모르고, 어떻게 해야할 지 모르겠다면, 베타 및 개발버전을 사용하지 마세요.~~ diff --git a/docs/ko-kr/protocol/integrated-strategy-schema.md b/docs/ko-kr/protocol/integrated-strategy-schema.md index 415f59d6fa..178ed19334 100644 --- a/docs/ko-kr/protocol/integrated-strategy-schema.md +++ b/docs/ko-kr/protocol/integrated-strategy-schema.md @@ -12,16 +12,24 @@ icon: ri:game-fill ## 로그라이크 리소스 파일 위치 - `resource/roguelike/`아래에 테마별 로그라이크 작업의 리소스를 저장합니다. - - 테마 폴더: `Phantom/` 팬텀 로그라이크, `Mizuki/` 미즈키 로그라이크,`Sami/` 사미 로그라이크. + - 테마 폴더: `Phantom/` 팬텀 로그라이크, `Mizuki/` 미즈키 로그라이크, `Sami/` 사미 로그라이크, `Sarkaz/` 살카즈 로그라이크, `JieGarden/` 쉐이 로그라이크 - `autopilot/` 내에는 각 레벨의 작전 json이 있습니다. - `关卡名.json` 레벨의 작전 로직 - - `encounter/` 우연한 만남의 로직 - - `default.json` 기본 로직 - - `deposit.json` 예금 로직 + - `encounter/` 우연한 만남의 로직 (모든 비전투 및 상점이 아닌 노드) + - `default.json` 레벨링 모드 + - `deposit.json` 오리지늄 주괴 모드 - `recruitment.json` 오퍼레이터 모집 로직 - - `shopping.json` 상점 구매 로직 + - `shopping.json` 상점 구매 수집품 로직 -특별히, `Sami/` 아래의 `foldartal.json`은 사미 로그라이크의 예견 밀문판의 사용 로직을 나타냅니다. +- 특별히, `Sami/` 아래의 + - `foldartal.json`은 사미 로그라이크의 암호판의 사용 로직을 나타냅니다. + - `collapsal_paradigms.json`은 사미 로그라이크 붕괴 패러다임의 유형을 나타냅니다. + - `autopilot/关卡名_collapse.json` 레벨의 작전 로직 (붕괴 패러다임 모드) + - `encounter/collapse.json` 붕괴 패러다임 모드 우연한 만남 로직 + +- `Sarkaz/` 아래의 + - `fragments.json`은 살카즈 로그라이크 사념의 기본 정보를 저장합니다. + - `map.json`은 살카즈 로그라이크 청사진 통과용 템플릿 이미지 정보를 저장합니다. ## 로그라이크 첫 단계 - 오퍼레이터 모집 diff --git a/docs/ko-kr/protocol/integration.md b/docs/ko-kr/protocol/integration.md index 81e1ba40d9..3a8974f837 100644 --- a/docs/ko-kr/protocol/integration.md +++ b/docs/ko-kr/protocol/integration.md @@ -45,7 +45,9 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p "enable": bool, // 이 작업을 활성화할지 여부, 선택 사항, 기본값은 true "client_type": string, // 클라이언트 타입이 필요합니다. // 옵션: "Official" | "Bilibili" | "txwy" | "YoStarEN" | "YoStarJP" | "YoStarKR" - "start_game_enabled": bool // 클라이언트를 자동으로 실행할지 여부, 선택 사항, 기본값은 false + "start_game_enabled": bool, // 클라이언트를 자동으로 실행할지 여부, 선택 사항, 기본값은 false + "account_name": string // 계정 전환, 선택 사항, 기본값은 전환하지 않음 + // 이미 로그인된 계정으로만 전환 가능, 로그인 이름으로 검색, 모든 로그인된 계정에서 고유한 입력 내용 보장 필요 } ``` @@ -119,7 +121,10 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p string, // 태그 레벨이 3이면 여기에 있는 태그(있는 경우)가 최대한 많이 선택됩니다. ... // 또한 강제 선택이므로 '3등급 태그 선택 해제' 설정은 모두 무시됩니다. ], - "extra_tags_mode": int, + "extra_tags_mode": int, // 더 많은 태그 선택, 선택 사항, 기본값은 0 + // 0 - 기본 동작 + // 1 - 태그 3개 선택, 충돌 가능 + // 2 - 가능한 경우 더 많은 고성급 태그 조합을 동시에 선택, 충돌 가능 "times": int, // 고용 횟수, 선택 사항, 기본값은 0입니다. 계산용으로만 0으로 설정할 수 있습니다. "set_time": bool, // 시간을 9시간으로 설정할지 여부, `times`가 0인 경우에만 사용 가능한 옵션입니다, 선택 사항, 기본값은 true입니다. "expedite": bool, // 즉시 완료 허가증을 사용할지 여부, 선택 사항, 기본값은 false입니다. diff --git a/docs/ko-kr/protocol/remote-control-schema.md b/docs/ko-kr/protocol/remote-control-schema.md index 53be435c92..f3977450ed 100644 --- a/docs/ko-kr/protocol/remote-control-schema.md +++ b/docs/ko-kr/protocol/remote-control-schema.md @@ -42,7 +42,7 @@ MAA는 이 엔드 포인트를 계속하여 폴링하여 실행해야하는 작 // 순차 실행 작업: 아래 작업은 전달된 순서대로 대기열에 들어갑니다 { "id": "b353c469-b902-4357-bd8f-d133199eea31", //작업의 고유 ID, 문자열 형식입니다. 작업 보고서에 사용됩니다. - "type": "CaptureImage", //스크린샷 작업입니다. 현재 시뮬레이터의 스크린샷을 캡처하고 작업 보고서의 페이로드에 Base64 문자열로 넣습니다. 이러한 유형의 작업을 발행해야하는 경우 요청하는 엔드 포인트가 수용 할 수 있는 최대 요청 크기에 주의하세요. 스크린샷은 수십 메가바이트가 있으며 일반적인 게이트웨이의 기본 크기 제한을 초과할 수 있습니다. + "type": "CaptureImage", //스크린샷 작업입니다. 현재 에뮬레이터의 스크린샷을 캡처하고 작업 보고서의 페이로드에 Base64 문자열로 넣습니다. 이러한 유형의 작업을 발행해야하는 경우 요청하는 엔드 포인트가 수용 할 수 있는 최대 요청 크기에 주의하세요. 스크린샷은 수십 메가바이트가 있으며 일반적인 게이트웨이의 기본 크기 제한을 초과할 수 있습니다. }, { "id": "15be4725-5bd3-443d-8ae3-0a5ae789254c", //작업의 고유 ID, 문자열 형식입니다. 작업 보고서에 사용됩니다. diff --git a/docs/ko-kr/protocol/task-schema.md b/docs/ko-kr/protocol/task-schema.md index ca00087989..c208c1ca2b 100644 --- a/docs/ko-kr/protocol/task-schema.md +++ b/docs/ko-kr/protocol/task-schema.md @@ -24,16 +24,16 @@ icon: material-symbols:task // - JustReturn: 인식 없이 작업을 직접 실행합니다. // - MatchTemplate: 이미지 매칭 // - OcrDetect: 텍스트 인식 - // - Hash: 해시 계산 + // - FeatureMatch: 특징 매칭 "action": "ClickSelf", // 선택 사항, 인식 후 작업 유형을 나타냅니다. // 입력하지 않으면 기본값은 DoNothing입니다. // - ClickSelf: 인식된 위치를 클릭합니다 (인식된 대상 범위 내에서 무작위 점). - // - ClickRand: 화면 전체에서 무작위 위치를 클릭합니다. // - ClickRect: 지정된 영역을 클릭합니다. specificRect 필드에 해당합니다. 이 옵션은 권장하지 않습니다. // - DoNothing: 아무 작업도 수행하지 않습니다. // - Stop: 현재 작업을 중지합니다. // - Swipe: 슬라이드, specificRect 및 rectMove 필드와 관련이 있습니다. + // - Input: 텍스트 입력, algorithm이 JustReturn이어야 하며, inputText 필드에 해당합니다. "sub": [ "SubTaskName1", "SubTaskName2" ], // 선택 사항, 서브 작업 목록입니다. 현재 작업이 실행된 후에 각 서브 작업을 순차적으로 실행합니다. @@ -48,12 +48,10 @@ icon: material-symbols:task // 입력하지 않으면 무한히 실행됩니다. // 최대 횟수에 도달하면 exceededNext 필드가 존재한다면 exceededNext 작업이 실행되며, 그렇지 않으면 현재 작업이 중지됩니다. - "next": [ "OtherTaskName1", "OtherTaskName2" ], - // 선택 사항, 현재 작업 및 서브 작업 실행 후에 실행될 다음 작업을 나타냅니다. - // 리스트의 맨 앞부터 순서대로 인식되며, 첫 번째로 일치하는 작업이 실행됩니다. - // 입력하지 않으면 현재 작업 실행 후에 중지됩니다. - // 동일한 작업에 대해 두 번째 인식부터는 첫 번째 인식 이후에 다시 인식되지 않습니다. - // JustReturn 유형의 작업은 마지막 아이템에 위치하지 않도록 주의하세요. + "next": ["OtherTaskName1", "OtherTaskName2"], + // 선택 사항, 현재 작업과 sub 작업을 완료한 후 다음에 실행할 작업을 나타냅니다. + // 앞에서부터 순차적으로 인식하여 첫 번째로 매칭되는 작업을 실행합니다. + // 입력하지 않으면 현재 작업 완료 후 바로 중지됩니다. "exceededNext": [ "OtherTaskName1", "OtherTaskName2" ], // 선택 사항, 최대 실행 횟수에 도달했을 때 실행할 작업을 나타냅니다. diff --git a/docs/ko-kr/readme.md b/docs/ko-kr/readme.md index aa631edfb3..277933dc38 100644 --- a/docs/ko-kr/readme.md +++ b/docs/ko-kr/readme.md @@ -32,9 +32,9 @@ MAA는 MAA Assistant Arknights의 약자입니다 ## 다운로드 및 설치 -[문서](./manual/newbie.md) 를 읽은 후 [공식 웹사이트](https://maa.plus) 또는 [Releases](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) 에서 다운로드하십시오. [초보자 가이드](./manual/newbie.md) 를 참고하여 설치하십시오. +[문서](./manual/newbie.md) 를 읽은 후 [공식 웹사이트](https://maa.plus) 또는 [Releases](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) 에서 다운로드하세요. [초보자 가이드](./manual/newbie.md) 를 참고하여 설치하세요. -## 개요 +## 주요 기능 - 이성을 사용하고, 아이템 드랍을 인식해 자동으로 통계 사이트에 업로드 합니다. [펭귄 물류](https://penguin-stats.cn/), [Yituliu](https://ark.yituliu.cn/) - 자동으로 오퍼레이터 효율을 고려해 기반시설 교대를 하며, 동시에 사용자 커스텀 교대 기능도 지원합니다. [기반시설 스키마](./protocol/base-scheduling-schema.md) @@ -47,20 +47,28 @@ MAA는 MAA Assistant Arknights의 약자입니다 - 원클릭으로 친구 방문 및 크레딧 획득/구매를 하며, 임무 보상 수령 등의 모든 일과를 수행합니다. - 통합전략에서 자동으로 오퍼레이터 레벨을 인식하며, 오리지늄 각뿔 획득 및 노드 개방과 레벨을 올려줍니다. - Copliot 파일을 통한 자동 지휘가 가능합니다. [영상 설명](https://www.bilibili.com/video/BV1H841177Fk/) -- C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 다음과 같은 다양한 환경에서 MAA를 사용할 수 있습니다!! +- C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 다음과 같은 다양한 환경에서 MAA를 사용할 수 있습니다! 말로만 설명하기보다는 사진으로 보여드리겠습니다! -```component Image2 +```component Image4 { "imageList": [ { "light": "images/ko-kr/readme/1-light.png", - "dark": "images/ko-kr/readme/1-light.png" + "dark": "images/ko-kr/readme/1-dark.png" }, { "light": "images/ko-kr/readme/2-light.png", - "dark": "images/ko-kr/readme/2-light.png" + "dark": "images/ko-kr/readme/2-dark.png" + }, + { + "light": "images/ko-kr/readme/3-light.png", + "dark": "images/ko-kr/readme/3-dark.png" + }, + { + "light": "images/ko-kr/readme/4-light.png", + "dark": "images/ko-kr/readme/4-dark.png" } ] } @@ -70,11 +78,11 @@ MAA는 MAA Assistant Arknights의 약자입니다 ### 기능 소개 -[사용자 매뉴얼](./manual/)을 참조하십시오. +[사용자 매뉴얼](./manual/)을 참조하세요. ### 해외 서버 지원 -현재 글로버 서버 EN/KR/JP/txwy 서버의 대부분의 기능이 지원됩니다. +현재 글로벌 서버 EN/KR/JP/txwy 서버의 대부분의 기능이 지원됩니다. 그러나, 해외 서버 사용자가 적고 프로젝트 인원이 부족하기 때문에 대부분의 기능이 자세하게 테스트를 거치지 않았습니다. 그러니 직접 사용해서 어떠한지 확인하시기 바랍니다. 만약 버그가 있거나, 특정 기능에 대한 강한 요구가 있다면 [Issues](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues) 및 [토론](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 에서 요청하거나 참여해주세요! @@ -88,9 +96,9 @@ MAA는 명령줄 인터페이스(CLI)를 지원하며, Linux,macOS 및 Window에 ### 주요 관련 프로젝트 -**현재 프로젝트 팀에 프론트엔드 전문가가 매우 부족합니다! 관련 경험이 있으시다면 우리와 함께 해주세요!** +**현재 프로젝트 팀에 프론트엔드 전문가가 매우 부족합니다! 관련 경험이 있으시다면 함께 참여해 주세요!** -- New Framework: [MaaFramework](https://github.com/MaaAssistantArknights/MaaFramework) +- New Framework: [MaaFramework](https://github.com/MaaXYZ/MaaFramework) - [전략 파일 저장소](https://prts.plus): Frontend [maa-copilot-frontend](https://github.com/MaaAssistantArknights/maa-copilot-frontend) - [전략 파일 저장소](https://prts.plus): Backend [MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) - [공식 웹사이트](https://maa.plus): [frontend](https://github.com/MaaAssistantArknights/MaaAssistantArknights/tree/dev/website) @@ -98,24 +106,17 @@ MAA는 명령줄 인터페이스(CLI)를 지원하며, Linux,macOS 및 Window에 ### 다국어 지원 (i18n) -MAA는 다국어를 지원하며, Weblate를 사용하여 로컬라이징을 관리합니다. 여러 언어를 알고 계시다면 [MAA Weblate](https://weblate.maa-org.net)로 이동하여 번역에 도음을 주세요. +MAA는 다국어를 지원하며, Weblate를 사용하여 로컬라이징을 관리합니다. 여러 언어를 알고 계시다면 [MAA Weblate](https://weblate.maa-org.net)로 이동하여 번역에 도움을 주세요. MAA는 중국어(간체)를 기본 언어로 하며, 번역 단어는 중국어(간체)를 기준으로 합니다. [![Weblate](https://weblate.maa-org.net/widget/maa/wpf-gui/multi-auto.svg)](https://weblate.maa-org.net/engage/maa/) -### Windows +### 개발 참여 및 기여 -1. 미리 빌드된 서드파티 라이브러리 다운로드 +#### Windows - ```cmd - python maadeps-download.py - ``` - -2. Visual Studio 2022 로 `MAA.sln`파일을 열고, `MaaWpfGui`를 마우스 우클릭을 해 시작 프로젝트로 설정합니다. -3. VS 상단에서 `RelWithDebInfo` `x64`을 선택합니다. (릴리즈 패키지 또는 ARM 플랫폼을 컴파일하는 경우 이 단계를 무시하세요) -4. `MaaWpfGui` - 속성 - 디버깅 - 로컬 디버깅 활성화(이렇게 하면 C++ Core에 중단점을 설정할 수 있습니다) -5. (선택사항)PR을 제출하기전에, [clang-format 지원](./develop/development.md#visual-studio에서-clang-format-사용-설정)을 활성화하는 것이 좋습니다. +[개발 전 필수 사항](./develop/development.md)을 참조하세요. ### Linux | macOS @@ -156,7 +157,7 @@ MAA는 중국어(간체)를 기본 언어로 하며, 번역 단어는 중국어( - 이미지 인식: [opencv](https://github.com/opencv/opencv.git) - ~~글자 인식: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ - 글자 인식: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) +- 딥러닝 배포 라이브러리: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) - ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) - ~~아이템 드랍 인식: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~ - 맵 타일 인식: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) @@ -168,9 +169,10 @@ MAA는 중국어(간체)를 기본 언어로 하며, 번역 단어는 중국어( - 안드로이드 터치 이벤트 구현: [Minitouch](https://github.com/DeviceFarmer/minitouch) - 안드로이드 터치 이벤트 구현: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch) - WPF MVVM 프레임워크: [Stylet](https://github.com/canton7/Stylet) -- WPF 조작 라이브러리: [HandyControl](https://github.com/HandyOrg/HandyControl) -- C# JSON 라이브러리: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) -- 다운로더: [aria2](https://github.com/aria2/aria2) +- WPF 조작 라이브러리: [HandyControl](https://github.com/HandyOrg/HandyControl) -> [HandyControls](https://github.com/ghost1372/HandyControls) +- C# 로그: [Serilog](https://github.com/serilog/serilog) +- C# JSON 라이브러리: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) & [System.Text.Json](https://github.com/dotnet/runtime) +- ~~다운로더: [aria2](https://github.com/aria2/aria2)~~ ### 데이터 소스 @@ -198,10 +200,12 @@ MAA의 개선을 위한 개발/테스트에 기여해준 모든 친구들에게 ## 광고 -사용자 그룹: [Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1), [QQ 그룹](https://api.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) +사용자 그룹: [QQ 그룹](https://api.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) Discord 서버: [Discord 링크](https://discord.gg/23DfZ9uA4V) +사용자 그룹: [Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1) [전략 JSON 공유](https://prts.plus) Bilibili 라이브 방송: [MrEO 방송](https://live.bilibili.com/2808861) 코딩 방송 & [MAA-Official 방송](https://live.bilibili.com/27548877) 게임/잡담 + [명일방주 무관 기술 공유 & 만담 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2): 지옥 같아요! [개발자 그룹 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)