![LunarCore](https://socialify.git.ci/Melledy/LunarCore/image?description=1&descriptionEditable=A%20game%20server%20reimplementation%20for%20version%201.5.0%20of%20a%20certain%20turn-based%20anime%20game%20for%20educational%20purposes.%20&font=Inter&forks=1&issues=1&language=1&name=1&owner=1&pulls=1&stargazers=1&theme=Light)
GitHub release (latest by date) GitHub GitHub last commit GitHub Workflow Status
Discord - Grasscutter
[EN](../README.md) | [ID](docs/README_id-ID.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [JP](README_ja-JP.md) | [RU](README_ru-RU.md) | [FR](README_fr-FR.md) | [KR](README_ko-KR.md) | [VI](README_vi-VI.md) **주의: **추가 지원, 질문 또는 토론이 필요한 경우, [Discord](https://discord.gg/cfPKJ6N5hw) 를 확인하세요. ### 주목할 만한 기능 - 기본적인 게임 기능: 로그인, 팀 설정, 인벤토리, 기본 장면/엔티티 관리 - 몬스터 전투 작동 - 자연계 몬스터/소품/NPC 생성 - 대부분의 캐릭터 기술 처리 - NPC 상점 처리 - 뽑기 시스템 - 메일 시스템 - 친구 시스템(어시스트는 아직 작동하지 않음) - 잊혀진 홀 (1.4.0 기능 포함) - 시뮬레이션된 우주(실행은 가능하지만 많은 기능이 누락됨) # 서버 및 클라이언트 실행 ### 전제 조건 * [Java 17 JDK](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) ### 추천 * [MongoDB 4.0+](https://www.mongodb.com/try/download/community) 서버 컴파일하기 ### 1. 시스템 터미널을 열고 다음을 사용하여 서버를 컴파일합니다. `./gradlew jar` 2. 서버 디렉터리에 `resources`라는 이름의 폴더를 만듭니다. 3. [https://github.com/Dimbreath/StarRailData](https://github.com/Dimbreath/StarRailData) 에서 `Config`, `TextMap`, `ExcelBin` 폴더를 다운로드하여 리소스 폴더에 넣습니다. 4. [https://gitlab.com/Melledy/LunarCore-Configs](https://gitlab.com/Melledy/LunarCore-Configs) 에서 `Config` 폴더를 다운로드하여 리소스 폴더에 넣습니다. 시스템에서 요청하는 파일을 모두 교체하세요. 이 파일들은 월드 스폰을 위한 것으로 서버에 매우 중요합니다. 5. 시스템 터미널에서 `java -jar LunarCore.jar`로 서버를 실행합니다. Lunar Core에는 데이터베이스를 위한 내부 MongoDB 서버가 내장되어 있으므로 Mongodb를 설치할 필요가 없습니다. 하지만 어쨌든 Mongodb를 설치하는 것을 적극 권장합니다. 6. 설정에서 `autoCreateAccount`가 true로 설정되어 있으면 계정 생성을 건너뛸 수 있습니다. 그렇지 않은 경우 서버 콘솔에서 `/account` 명령을 사용하여 계정을 생성합니다. ### 클라이언트와 연결하기(피들러) 1. **게임 데이터를 다운로드하려면 클라이언트로 공식 서버와 호오버스 계정에 한 번 이상 로그인합니다. 2. [Fiddler Classic](https://www.telerik.com/fiddler) 을 설치하여 실행합니다. 3. 피들러가 https 트래픽을 복호화하도록 설정합니다. (도구 -> 옵션 -> HTTPS -> HTTPS 트래픽 복호화) '서버 인증서 오류 무시'도 체크되어 있는지 확인합니다. 4. 피들러 클래식의 피들러스크립트 탭에 다음 코드를 복사하여 붙여넣습니다: ``` import System; import System.Windows.Forms; import Fiddler; import System.Text.RegularExpressions; class Handlers { static function OnBeforeRequest(oS: Session) { if (oS.host.EndsWith(".starrails.com") || oS.host.EndsWith(".hoyoverse.com") || oS.host.EndsWith(".mihoyo.com") || oS.host.EndsWith(".bhsr.com")) { oS.host = "localhost"; // 이 주소는 다른 IP 주소로 대체할 수도 있습니다. } } }; ``` 5. 계정 이름으로 로그인하며, 비밀번호는 아무거나 설정할 수 있습니다. ### 서버 명령 서버 명령은 서버 콘솔이나 게임 내에서 실행할 수 있습니다. 모든 플레이어의 친구 목록에 "서버"라는 이름의 더미 사용자가 있으며, 이 사용자에게 게임 내 명령을 사용하도록 메시지를 보낼 수 있습니다. ``` /account {create | delete} [username] (reserved player uid). 계정을 만들거나 삭제합니다. /avatar lv(level) p(ascension) r(eidolon) s(skill levels). 현재 아바타의 속성을 설정합니다. /clear {relics | lightcones | materials | items}. 플레이어 인벤토리에서 필터링된 아이템을 제거합니다. /gender {male | female}. 플레이어 성별을 설정합니다. /give [item id] x[amount] lv[number]. 대상 플레이어에게 아이템을 부여합니다. /giveall {materials | avatars | lightcones | relics}. 대상 플레이어에게 아이템을 부여합니다. /heal. 아바타를 치료합니다. /help. 사용 가능한 명령 목록을 표시합니다. /kick @[player id]. 플레이어를 서버에서 내쫓습니다. /mail [content]. 대상 플레이어에게 시스템 메일을 보냅니다. /permission {add | remove | clear} [permission]. 대상 플레이어에게 권한을 부여/제거합니다. /refill. 오픈 월드에서 스킬 포인트를 다시 채웁니다. /reload. 서버 구성을 다시 로드합니다. /scene [scene id] [floor id]. 플레이어를 지정된 장면으로 순간이동시킵니다. /spawn [monster/prop id] x[amount] s[stage id]. 대상 플레이어 근처에 몬스터나 소품을 스폰합니다. /unstuck @[player id]. 오프라인 플레이어가 로딩되지 않는 장면에 있을 경우 플레이어를 고정 해제합니다. /worldlevel [world level]. 대상 플레이어의 평형 레벨을 설정합니다. ```