# ZirconLegend-Server
**Repository Path**: hiphops/zircon-legend-server
## Basic Information
- **Project Name**: ZirconLegend-Server
- **Description**: 皓石传奇三 Zircon Mir3
- **Primary Language**: C#
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 46
- **Created**: 2025-01-03
- **Last Updated**: 2025-01-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 皓石传奇三- 服务器 Zircon Mir3 Server
本开源项目仅供学习游戏技术,禁止商用以及非法用途。
觉得本项目对你有帮助的别忘了 **点个星** ,祝你年年发大财!
技术交流以及体验公益服请加 【[QQ群:915941142](https://qm.qq.com/q/JeoJOJ4z4e)】

## 游戏简介
### 完整的传奇三游戏
- 含了四个职业:战士、法师、道士、刺客



- 技能丰富,平均每个职业有 38 个技能

- 地图和道具及其丰富,玩到 100级没压力;
- 技能正常修炼到 3级以后,还可通过打出高等级技能书一直升到 6级;
- 武器和首饰均可精炼,品质高的装备精炼上限也更高;
- 法师招宠与道士的宠物最高可升至暗金等级,各项属性翻倍,非常实用;
- 刺杀剑术破防之余,技能等级越高,刺杀剑术的攻速越快,爽之又爽;
### 支持多平台部署
服务端支持在 Linux、Windows、Docker 平台上部署。
### 便捷传送
每个传送石都可以方便地传送到任意地图。
## 服务器部署
### 下载运营数据
包含了地图数据比较大,压缩之后仍然有近 800Mb,因此只能放在网盘中。
【[百度网盘 2024-8-15](https://pan.baidu.com/s/1OMkb834cOtxF8KIrlJMKRQ?pwd=h1bv)】
如果嫌百度网盘太慢,这份运营数据我也保存到了 QQ 群文件中,【[QQ群:915941142](https://qm.qq.com/q/JeoJOJ4z4e)】
内置账号: **zrf@zrf.zrf、raphael@gm.gm** ,密码均为 **123456** , 可直接登录游玩。
其中 **raphael@gm.gm** 为管理员账号,包含了三个管理员角色 **raphael01、raphael02、raphael03** 管理员密码为 **654321** 。
去版本 [发布页面](https://gitee.com/raphaelcheung/zircon-legend-server/releases) 下载最新的服务器配置文件` Server.ini `,根据需要修改服务器 IP 以及端口。
### 部署游戏服务
- #### 推荐用 docker-composer 部署。
镜像名称:` raphzhang/zirconlegend:latest `,每次发布都会更新到 docker。
注意要将上一步下载来的运营数据解压后映射到容器的` /zircon/datas `目录。
配置文件` Server.ini `同样映射到容器的目录` /zircon/datas `下。
```
services:
zircon:
container_name: zircon
image: raphzhang/zirconlegend:latest
networks:
1panel-network:
ipv4_address: 172.18.0.82
ports:
- 192.168.0.3:17000:7000
restart: unless-stopped
user: "0:0"
volumes:
- ./datas:/zircon/datas
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
version: "3"
networks:
1panel-network:
external: true
```
成功运行后能看到类似下面的输出就表示运行成功:
```
皓石传奇三 v0.1.0.0
免费开源的传奇三,有疑问请联系开源志愿者:QQ50181976
版本文件路径:./datas/Legend.exe
地图文件路径:./datas/Map/
[Sunday, 11 August 2024 03:30:51]: Network Started.
[Sunday, 11 August 2024 03:30:51]: Web Server Started.
[Sunday, 11 August 2024 03:30:51]: Loading Time: 2 Seconds
```
- #### Windows 10 部署
新建一个英文名服务器根目录,从 [发布页面](https://gitee.com/raphaelcheung/zircon-legend-server/releases) 下载运行包解压到根目录下。
根目录下建立一个子目录` datas `。
把前面下载的运营数据解压连同配置文件` Server.ini `放入子目录` datas `中。
用管理员权限运行根目录的` Server.exe `。
### 配置自动更新
- 要实现客户端的自动更新,要求 [启动器](https://gitee.com/raphaelcheung/zircon-legend-launcher)、客户端、服务器的版本均在 **v1.0.0** 以上。
- 首先保证服务器是停止运行的状态。
- 以服务器 Windows10 为例,在` datas `目录下创建一个` Client `目录,将需要更新的客户端文件都放入其中。
- 修改配置` Server.ini `:
```
[System]
ClientPath=./datas/Client
```
- 启动服务器后,会先扫描生成更新清单,这样服务器就准备好了。
- 如果需要更新启动器` Launcher.exe `,同样放入` Client `目录即可更新。
### 反向代理
如果你设置了` Nginx `反向代理游戏流量从而导致游戏服务器获取不到真实客户端 IP。
你需要在` Nginx `上开启` proxy_protocol `,同时打开服务器的配置项:
```
[Network]
UseProxy=True
```
这样服务器就能获取到转发流量的真实 IP 地址。
### GM 管理
登录的时候,账号那里填写管理员账号,密码要使用管理员密码进行登录,才会具备 GM 权限。
以下是 GM 管理员命令:
```
@TAKECASTLE [城堡指数]
@FORCEENDWAR [城堡指数] 参数1 #结束攻城
@FORCEWAR [城堡指数] 参数1 #开始攻城
@CLEARBELT
@MAP [地图名]
@GLOBALBAN [角色名] [*持续时间]
@CHATBAN [角色名] [*持续时间] #禁止聊天
@REFUNDHUNTGOLD [角色] [数量] #狩猎金币
@REFUNDGAMEGOLD [角色] [数量] #奖励游戏币
@TAKEGAMEGOLD [角色] [数量] #移除游戏币
@REMOVEGAMEGOLD [角色] [数量] #因为支付失败扣除游戏币
@GIVEGAMEGOLD [角色] [数量] #成功购买 游戏币
@REBOOT 重启
@GCCOLLECT gc收集
@MAKE [物品名称] [数量]
@SETCOMPANIONVALUE [Level] [Stat] [Value]
@GIVESKILLS [角色名] #给与全部技能
@GOTO [角色名]
@LEVEL [角色名] 等级 #调整指定角色等级,如果角色名为空,则调整当前角色
@ITEMBOT [角色名]
@GOLDBOT [角色名]
@GAMEMASTER
@OBSERVER #切换隐身模式
@RECALL [角色名] #召唤到身边
@LEAVEGUILD
@ALLOWGUILD
@BLOCKWHISPER
@ALLOWTRADE
@ENABLELEVEL3
@ENABLELEVEL5
@ENABLELEVEL7
@ENABLELEVEL10
@ENABLELEVEL11
@ENABLELEVEL13
@ENABLELEVEL15
@EXTRACTORLOCK
@ROLL [Amount]
@PLAYERONLINE #查看在线人数
@CHARACTERONLINE #列举 20 个在线的角色名称
@ADMIN 账号 true/false #在线设置账号的管理员权限(临时管理员),这里设置的权限也会永久保存
@修改密码 账号 新密码 #修改指定账号的密码
@禁止登录 账号 封禁秒数 #在指定时间内禁止账号登录,秒数为0表示解禁
@恢复误删 角色名 #恢复误删角色
@重载更新 #重新加载客户端更新目录下的文件
@屏蔽物品掉落 物品名 true/false #设置为true后,该物品不会从任何怪物身上掉落
@保存数据库 #将内存中的数据库保存到文件,比如屏蔽物品掉落的改动、地图怪物倍率的改动等
@监控在线 #打开后,任何角色上下线都会收到消息
@怪物倍率 #显示当前地图怪物的倍率数据
@怪物倍率 生命倍率 最大生命倍率 伤害倍率 最大伤害倍率 经验倍率 最大经验倍率 掉落倍率 最大掉落倍率 金币倍率 最大金币倍率 #修改当前地图的怪物倍率数据
@清理怪物 #清除当前地图上所有的怪物,过一会地图会自动刷新新的怪物
```
## 客户端
获取客户端去这里看 【[ZirconLegend-Client](https://gitee.com/raphaelcheung/zircon-legend-client)】
## 服务器 代码编译
开发环境依赖:
- Microsoft Visual Studio Community 2022
- .Net 8.0
安装这些后拉取全库代码。
项目包含了子模块,拉取的时候要选中` Recursive `。
这样才能把子模块一并拉取下来。
主干处于持续开发状态,推荐拉取发布版本。

项目的编译依赖都已预设好,直接编译即可