mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2026-06-04 19:42:13 +00:00
Modify: readme
This commit is contained in:
parent
624bc5e944
commit
5492fc4eb9
110
README.md
110
README.md
@ -5,3 +5,113 @@ Oshima Studios 巨献
|
||||
设定可参考:[Oshima Core 文档 | 喔 是吗?](https://docs.milimoe.com)
|
||||
|
||||
FunGame 原项目地址:[https://github.com/project-redbud/FunGame-Core](https://github.com/project-redbud/FunGame-Core)
|
||||
|
||||
---
|
||||
|
||||
# OshimaGameModule + FunGame.Server 一键部署指南
|
||||
|
||||
本仓库提供了批处理脚本,用于**自动完成**以下所有部署工作:
|
||||
|
||||
- 从 GitHub 克隆所需的 4 个仓库(`FunGame-Core`、`FunGame-Server`、`OshimaGameModule`、`SQLQueryExtension`)
|
||||
- 整理目录结构
|
||||
- 编译所有解决方案
|
||||
- 复制插件、配置文件、SQL 脚本
|
||||
- 启动 Web API 服务(`FunGameWebAPI.exe`)
|
||||
|
||||
你**不需要**提前克隆任何东西,只需获取**两个**脚本文件即可。
|
||||
|
||||
---
|
||||
|
||||
## 系统要求
|
||||
|
||||
- **操作系统**:Windows(脚本使用 `mkdir`、`copy`、`xcopy`、`start` 等命令)
|
||||
- **[.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)**(`dotnet --version` 确认)
|
||||
- **[Git for Windows](https://git-scm.com/downloads)**(已添加到 `PATH`)
|
||||
|
||||
---
|
||||
|
||||
## 部署步骤(只需两步)
|
||||
|
||||
### 1️⃣ 获取脚本
|
||||
|
||||
将以下两个脚本保存到**同一个空文件夹**中:
|
||||
|
||||
- `setup.bat`
|
||||
- `start-web-api.bat`
|
||||
|
||||
### 2️⃣ 运行 `setup.bat`
|
||||
|
||||
双击 `setup.bat`(或在命令行中执行)即可。
|
||||
|
||||
整个过程**全自动**,包括:
|
||||
- 克隆四个仓库(该步骤需要网络)
|
||||
- 编译三个 `.sln` 解决方案
|
||||
- 复制所有依赖文件到正确位置
|
||||
- 自动启动 `FunGameWebAPI.exe`
|
||||
|
||||
如果编译失败,请查看 `build_logs\build_log.txt` 中的详细日志。
|
||||
|
||||
后续运行只需要直接运行 `start-web-api.bat` 即可。
|
||||
|
||||
---
|
||||
|
||||
## 执行后的目录结构
|
||||
|
||||
```
|
||||
当前文件夹/
|
||||
├── build_logs/ # 编译日志
|
||||
├── FunGame.Core/ # 核心库
|
||||
├── FunGame.Extension/
|
||||
│ └── FunGame.SQLQueryExtension/ # SQL扩展
|
||||
├── FunGame.Server/ # Web API服务
|
||||
│ └── bin/Debug/net10.0/
|
||||
│ ├── FunGameWebAPI.exe
|
||||
│ ├── fungame.sql / fungame_sqlite.sql
|
||||
│ ├── configs/ # 插件配置文件
|
||||
│ ├── maps/ # 地图相关DLL
|
||||
│ ├── modules/ # 模块DLL
|
||||
│ └── plugins/
|
||||
│ ├── OshimaServer/
|
||||
│ └── OshimaWebAPI/
|
||||
├── OshimaGameModule/ # 插件源码
|
||||
├── setup.bat
|
||||
└── start-web-api.bat
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### ❌ `dotnet build` 失败
|
||||
|
||||
- 确认已安装符合项目版本的 **.NET SDK**(`dotnet --info`)
|
||||
- 查看 `build_logs\build_log.txt` 定位具体错误
|
||||
|
||||
### ❌ git clone 失败
|
||||
|
||||
- 检查网络,确保能访问 `github.com`
|
||||
- 如果网络限制 HTTPS,可改为 SSH 地址(需提前配置 SSH key)
|
||||
|
||||
---
|
||||
|
||||
## 手动启动(不重新编译)
|
||||
|
||||
如果只需要启动服务(不再编译),可以执行:
|
||||
|
||||
```bash
|
||||
cd FunGame.Server\bin\Debug\net10.0
|
||||
FunGameWebAPI.exe
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 许可证
|
||||
|
||||
各子项目遵循其各自仓库中的许可证。
|
||||
|
||||
---
|
||||
|
||||
## 需要帮助?
|
||||
|
||||
请查看各子项目的 GitHub Issues,或联系维护者。
|
||||
日志文件位于 `build_logs\build_log.txt`,请附上该文件内容以便排查问题。
|
||||
|
||||
9
setup.bat
Normal file
9
setup.bat
Normal file
@ -0,0 +1,9 @@
|
||||
git clone https://github.com/project-redbud/FunGame-Core
|
||||
git clone https://github.com/project-redbud/FunGame-Server
|
||||
git clone https://github.com/oshima-studios/OshimaGameModule
|
||||
git clone https://github.com/project-redbud/SQLQueryExtension
|
||||
ren "FunGame-Core" "FunGame.Core"
|
||||
ren "FunGame-Server" "FunGame.Server"
|
||||
if not exist "FunGame.Extension" mkdir "FunGame.Extension"
|
||||
move "SQLQueryExtension" "FunGame.Extension\FunGame.SQLQueryExtension"
|
||||
call "start-web-api.bat"
|
||||
70
start-web-api.bat
Normal file
70
start-web-api.bat
Normal file
@ -0,0 +1,70 @@
|
||||
if not exist "build_logs" mkdir "build_logs"
|
||||
set SOLUTION1=FunGame.Core\FunGame.Core.sln
|
||||
set SOLUTION2=FunGame.Server\FunGameServer.sln
|
||||
set SOLUTION3=OshimaGameModule\OshimaGameModule.sln
|
||||
set LOG_FILE=build_logs\build_log.txt
|
||||
echo Build started at %date% %time% > %LOG_FILE%
|
||||
echo ----------------------------------------------- >> %LOG_FILE%
|
||||
echo Building FunGame.Core...
|
||||
dotnet build %SOLUTION1% -c Debug >> %LOG_FILE% 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo Failed to build FunGame.Core. See log for details.
|
||||
goto :error
|
||||
)
|
||||
echo FunGame.Core build succeeded.
|
||||
echo Building FunGame.Server...
|
||||
dotnet build %SOLUTION2% -c Debug >> %LOG_FILE% 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo Failed to build FunGame.Server. See log for details.
|
||||
goto :error
|
||||
)
|
||||
echo FunGame.Server build succeeded.
|
||||
echo Building OshimaGameModule...
|
||||
dotnet build %SOLUTION3% -c Debug >> %LOG_FILE% 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo Failed to build OshimaGameModule. See log for details.
|
||||
goto :error
|
||||
)
|
||||
echo OshimaGameModule build succeeded.
|
||||
echo ----------------------------------------------- >> %LOG_FILE%
|
||||
echo Build completed at %date% %time% >> %LOG_FILE%
|
||||
echo All solutions built completely!
|
||||
goto :end
|
||||
|
||||
:error
|
||||
echo ----------------------------------------------- >> %LOG_FILE%
|
||||
echo Build failed at %date% %time%. >> %LOG_FILE%
|
||||
echo Check the log file for details: %LOG_FILE%
|
||||
|
||||
:end
|
||||
set "coreDir=FunGame.Core\Library\SQLScript"
|
||||
set "sourceDir=OshimaGameModule\bin\Debug\net10.0"
|
||||
set "destDir=FunGame.Server\bin\Debug\net10.0"
|
||||
set "destDir2=%destDir%\plugins\OshimaServer"
|
||||
set "destDir3=%destDir%\plugins\OshimaWebAPI"
|
||||
copy "%coreDir%\fungame.sql" "%destDir%" /y
|
||||
copy "%coreDir%\fungame_sqlite.sql" "%destDir%" /y
|
||||
if not exist "%destDir%\maps" mkdir "%destDir%\maps"
|
||||
copy "%sourceDir%\OshimaCore.dll" "%destDir%\maps\OshimaCore.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaMaps.dll" "%destDir%\maps\OshimaMaps.dll" /Y >nul
|
||||
if not exist "%destDir%\modules" mkdir "%destDir%\modules"
|
||||
copy "%sourceDir%\OshimaCore.dll" "%destDir%\modules\OshimaCore.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaMaps.dll" "%destDir%\modules\OshimaMaps.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaModules.dll" "%destDir%\modules\OshimaModules.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaServers.dll" "%destDir%\modules\OshimaServers.dll" /Y >nul
|
||||
if not exist "%destDir2%" mkdir "%destDir2%"
|
||||
copy "%sourceDir%\OshimaCore.dll" "%destDir2%\OshimaCore.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaMaps.dll" "%destDir2%\OshimaMaps.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaModules.dll" "%destDir2%\OshimaModules.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaServers.dll" "%destDir2%\OshimaServers.dll" /Y >nul
|
||||
if not exist "%destDir3%" mkdir "%destDir3%"
|
||||
copy "%sourceDir%\OshimaCore.dll" "%destDir3%\OshimaCore.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaMaps.dll" "%destDir3%\OshimaMaps.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaModules.dll" "%destDir3%\OshimaModules.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaServers.dll" "%destDir3%\OshimaServers.dll" /Y >nul
|
||||
copy "%sourceDir%\OshimaWebAPI.dll" "%destDir3%\OshimaWebAPI.dll" /Y >nul
|
||||
if not exist "%destDir%\configs" mkdir "%destDir%\configs"
|
||||
xcopy "%sourceDir%\configs\" "%destDir%\configs\" /e /i /y /q >nul
|
||||
|
||||
cd FunGame.Server\bin\Debug\net10.0
|
||||
start FunGameWebAPI.exe
|
||||
Loading…
x
Reference in New Issue
Block a user