金丝雀
Canary 是一款面向 OpenTibia 社区的免费且开源的 MMORPG 服务器模拟器,使用 C++20 和 Lua 编写。它是 OTServBR-Global 项目的分支。该仓库包含服务器核心、数据包、Lua 脚本、数据库架构、构建预设、自动化测试以及项目所使用的开发工具。
入门指南
- Wiki.
Docker 快速入门
Canary 包含一个轻量级的 Docker 快速入门,用于在本地运行测试服务器,而无需在本地编译 Canary。该栈会启动 MariaDB、已发布的 Canary 运行时镜像、作为网站/管理 AAC 的 MyAAC,以及作为客户端登录 Web 服务的 opentibiabr/login-server。
此快速入门适用于本地开发、测试和局域网演示。请勿使用默认的测试账户和密码直接将其暴露到公共互联网上。
从 docker 目录运行:
cp .env.dist .env
docker compose up -d --build
docker 目录还提供受保护的启动脚本,用于启动堆栈并清理安全的 Docker 残留,同时不删除数据库卷:
.\up.ps1
sh ./up.sh
默认本地端点:
- 网站/管理:
http://localhost:8080 - 客户端登录 Web 服务:
http://localhost:8088/login - 游戏端口:
7172
MyAAC 的 login.php 已从快速入门镜像中有意移除。客户端
应仅使用 login-server。请参阅 docs/docker/quickstart-for-beginners.md
获取新手指南,以及 docker/DOCKER.md 获取完整设置、
环境变量、测试账户和故障排除指南。
文档
- Docker 入门快速入门.
- 多协议运行时配置文件. 涵盖 当前、11.00 和 8.60 运行时契约、端口布局、客户端准备 以及验证清单。
- 系统文档.
- Lua API 参考和 VSCode IntelliSense 存根. 当启用
generateLuaApiDocs时,Canary 会在启动期间从 C++ Lua 绑定生成这些文件。仓库.luarc.json已将docs/lua-api添加到 Lua Language Server 工作区库中;对于 VSCode 工作区设置,请运行tools/setup_vscode_lua_api.ps1。
推荐工具与客户端
- Assets Editor. 将其作为
唯一的资产真实来源,然后从同一当前资产集导出兼容
.dat/.spr的 8.60 客户端包。 - Remere's Map Editor.
- OTClient Redemption.
- Tibia Extended Client Library. 使用此库准备兼容的 8.60/11.00 CipSoft 客户端,支持扩展 限制、基于配置的登录重定向以及每个客户端的本地状态。
- Game Client.
夜间构建包
开发版构建可从 GitHub Actions 工件中下载。它们对于测试 main 分支的最新更改非常有用,但可能包含稳定版中尚未出现的行为。
运行测试
可以使用 .mise.toml 中固定的工具版本和任务,从仓库根目录运行测试:
mise install
mise run configure linux-debug
mise run build linux-debug
mise run test linux-debug
# Replace linux-debug with macos-debug or windows-debug as needed.
有关添加测试和框架使用等详细测试信息,请参阅 tests/README.md。
支持与社区
如需实时支持,请加入 OpenTibiaBR Discord。
GitHub issue tracker 应用于报告 bug、提出改进建议及处理技术项目任务。它不是支持论坛。
贡献
欢迎贡献。您可以通过以下几种方式提供帮助:
- 通过 Issue Tracker 报告 bug。
- 通过 Pull Requests 提交改进。
- 改进测试、文档、脚本、数据包或 C++ 代码。
- 验证发布版本、每日构建和最近的更改。
赞助
Canary 由社区贡献者维护。如需支持开发,请访问 OpenTibiaBR 赞助页面。
致谢
感谢 Canary、OTServBR-Global 以及 OpenTibia 社区的所有贡献者。
许可证
本项目依据 GPL-2.0 许可证 分发。