feat:上传mcguide-开发指南部份

This commit is contained in:
Othniel su
2024-12-23 10:57:59 +08:00
parent 7292166c88
commit 0dc59fa4f0
3297 changed files with 63375 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,17 @@
---
front: https://nie.res.netease.com/r/pic/20220408/18bbac32-4a8c-4ddb-88b9-365d9f17df79.png
hard: 入门
time: 10分钟
selection: true
---
# 简易网络服视频教程
Apollo是用于开发和部署我的世界PE版网络游戏服务器集群的工具。集成功能插件、负载均衡、集群管理、运营指令等功能于一体。使开发者只需专注于MOD业务逻辑开发更多玩法组件为我的世界的创新拓展带来更多可能。
简易网络服模板是Apollo的入门范例它由一个大厅服和3个游戏服构成。登录后进入大厅服大厅服有3个NPC点击NPC可跳转到不同游戏服。在每个游戏服中有跳转回大厅服的NPC。
视频将围绕它介绍Apollo的基础操作和基础知识。
<embed src="https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d" height="600" width="800"/>

View File

@@ -0,0 +1,47 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/image-20191230101214669.2b7d28c8.png
hard: 入门
time: 10分钟
---
# 创建网络服
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**创建网络服**小节
### 新建C++网络服
如果你是第一次接触Apollo的开发者可以点击新建作品 => 基岩版网络服 ,会看到四个网络服模板。
- 空白网络服模板空白模板只有一个大厅没有Mod进去相当于**原版生存服**
- 简易网络服模板:该模板实现了一个简单的网络游戏,由**1个大厅服和3个游戏服**构成。
- 高承载副本管理模板:该模板利用官方副本管理插件,支持在一个地图中设置多个副本,且副本之间互不干扰,大大提升了服务器的承载能力。
- 排行版模板:该模板实现了一个展示个人单服榜、个人全服榜以及公会全服榜三种。
![image-20191230101214669](./images/image-20191230101214669.png)
点击对应模板上的新建,即可新建对应的网络服。
点击对应模板上的说明,即可查看该模板的详细信息。
现在,点击简易网络服模板,新建一个简易网络服,它会弹出这样下图的配置页面,下一小节我们将介绍如何配置和部署简易网络服。
![image-20191230111523901](./images/image-20191230111523901.png)
### 导入本地网络服
- 如果你以前曾经使用过**bat/sh部署脚本**进行部署,则可以通过本地导入的方法导入以前使用的工程。
- 点击基岩版服务器=>网络服开发分页,选择右上角的本地导入。
![image-20191129151441535](./images/image-20191129151441535.png)
- 网络服名称只允许使用字母、数字和下划线,它会成为你的**网络服目录名称,并作为进程名标识**
![image-20191230103018372](./images/image-20191230103018372.png)
- **Mod文件夹**存放Mod代码与资源的文件夹**路径不允许使用中文或特殊符号**
- **项目文件夹**deploy.json所在文件夹

View File

@@ -0,0 +1,59 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/image-20191230111523901.a5b52cc9.png
hard: 入门
time: 15分钟
---
# 网络服基础配置
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**网络服基础配置**小节
## 基础配置
- 在创建好的简易网络服上,点击更多=>服务器配置,即可以进入服务器的配置页面。
- 基础配置是**必须完成**的配置
- 将分配到手的**测试机IP**填入红框中
> 点击重置会自动将所有您拥有的机器填入机器列表,您可以先重置,然后再删除不需要的机器。
![image-20191230111523901](./images/jcpz1.png)
点击下一步,如果所有填入数据准确无误的话,完成按钮就会点亮。
以下为一些常见的错误:
### 请求超时
连接Apollo开发机需要加入IP白名单请使用申请时提供的**白名单机器**登陆MCStudio操作[**点击此处**](http://temp-white-list.mc.netease.com:9999/?machine=)可把当前机器加入白名单。
### 无效的Mod目录
请选择有效的本地文件夹,并且路径内**不要包含中文或特殊字符**
### 机器IP不合法
请填入官方提供的开发机IP
### 网络服名称不合法
请输入合法的网络服名称,**只允许使用字母、数字、下划线**
## 部署网络服
- 当服务器配置的完成按钮点亮后,即可点击完成服务器配置,其余配置会在后面的教程里介绍。
- 完成配置后,网络服就可以开始部署了
![image-20200220180628580](./images/image-20200220180628580.png)
- 点击部署,会弹出部署日志窗口
![1591078869592](./images/1591078869592.png)
- 部署成功后,在部署日志的最后,会显示入口地址。

View File

@@ -0,0 +1,103 @@
# 网络服进阶配置
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5e7428e16a37ca23faf84bc2)的**网络服进阶配置**小节
## 大厅/游戏服
大厅服相当于主城一个玩家登陆后首先会被放到类型为lobby的服务器中。
游戏服是具体的游戏玩法,玩家可以从大厅服跳转到游戏服。
大厅服与游戏服的配置如图所示。
![image-20191230112037901](./images/image-20191230112037901.png)
### Apollo大版本/小版本
- 首次创建网络服总是选取最新的release版本即可
- 后面可根据API支持版本/整包大版本更新来按需升级
### 服务器IP
- 选择一个可用的机器
- 通常来说一个机器IP上不要部署超过40个服具体视加载Mod性能而定
### Mod
- 该选项用于配置该服要加载的服务器Mod
![image-20191230105808587](./images/image-20191230105808587.png)
- 服务器Mod是基于C++组件之上进行组合的复合型Mod它包含多种角色的多个Mod
- 选取简易网络服模板,更多=>打开Mod目录可以查看该模板包含的服务器Mod
- 这里每一个文件夹都代表一个服务器Mod
![image-20191230105610857](./images/image-20191230105610857.png)
- 每个Mod的标准格式
![image-20191230105652514](./images/image-20191230105652514.png)
### 类型
- 类型名只允许使用字母、数字、下划线
- 类型用于标识该服的功能在服务器Mod代码里需要用到如转到指定类型的服
- 玩家登陆服务器后会在所有类型名为lobby的大厅服务器中随机一个加入如果没有类型名为lobby的大厅服务器将无法登入。
### 游戏服地图保存说明
- 开发者在需要备份地图的时候,可以使用保存地图的功能。在开发者下一次部署的时候,开服工具将会根据开发者选择的地图进行部署网络游戏。
- 开发者如果要使用保存地图的功能需勾选下图中的”是否保存地图”选项。开发者可以选择“使用地图”选项里面选项有”MOD内地图”、“服务器最新地图”和已经保存的地图。
- 选择”MOD内地图”开服工具则会选择MOD自带的地图进行部署。
- 如果当前服务器已经部署运行,则可选择“服务器最新地图”选择当前地图重新部署。
- 否则会根据所选的地图存档进行部署。开服工具会在游戏停服或者每隔24小时备份一次地图。为每一个网络游戏的每个类型的服务最少保留最近7天地图若当天地图保存多份则至少保留当天最近2份地图
![1590024486604](./images/1590024486604.png)
- 地图资源建议:
需保存地图的服务器建议使用“地图属性”插件限制地图范围避免地图过大过大可能出现不稳定的情况。地图建议限制在1G以内对应地图区块数为10万坐标XZ范围约为5000x5000。
## 数据库
- Apollo开发测试机默认安装了三种数据库mysqlmongoredis
- 通过数据库配置页面可以选取与配置要使用的数据库
![1591078639263](./images/1591078639263.png)
## 更多
当您需要将网络服提交审核或发布到开发者平台时,需要使用更多配置项里的选项。详细内容将在后面的[平台发布](../课程9服务器上线/第1节平台发布.md)中介绍。
![1591078533362](./images/1591078533362.png)
## deploy.json
有部分配置可以手动在配置文件中配置。
打开配置文件目录,可以看到配置文件`deploy.json`
![configdir](./images/configdir.png)
`deplay.json``common`属性中可添加以下字段
- packet_threshold
值类型int
限制客户端给服务器发包的频率,若某个客户端每秒钟上发的数据包的数量大于该值,服务器将断开与其的连接。

View File

@@ -0,0 +1,25 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/bushujieshao.32a5d8c3.png
hard: 入门
time: 10分钟
---
# 部署网络服
上一小节我们介绍了网络服的进阶配置,当完成服务器配置后,修改仅仅只是保存在本地,接下来我们介绍如何将修改部署应用到服务器上。
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**部署网络服**小节
## 智能部署
网络服开发页面的部署按钮默认采取智能部署方式,总是尝试采取最快最低成本的更新方式,使修改的代码生效。
通常在开发阶段,总是使用智能部署就可以了。
常用的配置包括修改服务器数量修改Apollo大小版本新增一种类型的大厅服/游戏服等。
Apollo网络服中的各种配置可以一次性修改部署会自动根据配置的变化选择最优的部署方式。
![](./images/bushujieshao.png)

View File

@@ -0,0 +1,26 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/image-20200221225755733.0e532117.png
hard: 入门
time: 10分钟
---
# 服务器日志
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**服务器日志**小节
### 打开服务器日志
- 点击服务器=>更多=>服务器日志,可以打开服务器日志窗口
![](./images/fuwuqirizhi.png)
### 获取玩家uid
- 打开控制服日志
- 启动开发测试进入游戏
- 从控制服的登陆日志中可以查看登陆玩家的uid
![image-20200221225755733](./images/image-20200221225755733.png)

View File

@@ -0,0 +1,150 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/image-20200221210608332.eccd8edb.png
hard: 入门
time: 20分钟
---
# 官方插件
本节内容可查阅[视频教程](https://cc.163.com/act/m/daily/iframeplayer/?id=5faa58dc5655da63cc2d8a5d)的**官方mod插件**小节
## 获取官方插件
用以下方式下载官方插件:
- MCStudio=>基岩版服务器=>插件=>官方插件=>公告插件
![image-20200221210532737](./images/firstplugin01.png)
## 公告插件配置与部署
- 公告插件由neteaseAnnounce、neteaseAnnounceMaster、neteaseAnnounceService三个Mod构成。
- 执行neteaseAnnounceService目录下的mod.sql
![image-20200221210532737](./images/firstplugin02.png)
- 登录到远程开发机
- 执行下面命令进入mysqlmysql -h机器ip -p数据库密码 -u数据库用户名。
```
mysql -h127.0.0.1 -uminecraft -pminecraft
```
- 执行下面命令切换数据库名称 use minecraft
```
use minecraft
```
- 执行mod.sql把mod.sql文件的内容拷贝并执行结果提示"Query OK"表示执行成功。示例如下:
```
-- ###########################version1.0.0####################
-- 登录弹窗
CREATE TABLE IF NOT EXISTS `neteaseLoginPopup` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '弹窗标题',
`content` VARCHAR(2000) NOT NULL DEFAULT '' COMMENT '弹窗文本正文,支持颜色格式化',
`pic` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '弹窗图片路径需要在res中存在',
`priority` INT UNSIGNED NOT NULL COMMENT '弹窗显示优先级,数字大的显示在前',
`beginTime` INT UNSIGNED NOT NULL COMMENT '显示起始时间,超过这个时间后登录的玩家才会看到此弹窗',
`endTime` INT UNSIGNED NOT NULL COMMENT '显示结束时间,超过这个时间后登录的玩家不会再看到此弹窗',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `end_index` (`endTime`) COMMENT '显示结束时间索引,方便清理过期弹窗'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 浮窗公告
CREATE TABLE IF NOT EXISTS `neteaseFloatingWindow` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`content` VARCHAR(255) NOT NULL DEFAULT 'empty' COMMENT '公告正文,支持颜色格式化',
`displayTime` TINYINT UNSIGNED NOT NULL COMMENT '公告显示时长,单位秒',
`lobbyShow` TINYINT UNSIGNED NOT NULL COMMENT '公告是否在大厅服显示',
`gameShow` TINYINT UNSIGNED NOT NULL COMMENT '公告是否在游戏服显示',
`beginTime` INT UNSIGNED NOT NULL COMMENT '显示起始时间,公告会在这个时间点开始显示',
`endTime` INT UNSIGNED NOT NULL COMMENT '显示结束时间,超过这个时间,公告不会再显示',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `end_index` (`endTime`) COMMENT '显示结束时间索引,方便清理过期公告'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 邮件用户信息
CREATE TABLE IF NOT EXISTS `neteaseMailUserProp` (
`uid` INT UNSIGNED NOT NULL COMMENT '用户唯一ID',
`lastGroupSync` INT UNSIGNED NOT NULL COMMENT '群邮件同步进度',
`version` INT UNSIGNED NOT NULL COMMENT '玩家信息版本',
`cTime` INT UNSIGNED NOT NULL COMMENT '玩家首次登录游戏的时间',
PRIMARY KEY (uid) COMMENT '主键'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 单人邮件
CREATE TABLE IF NOT EXISTS `neteaseUserMail` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`uid` INT UNSIGNED NOT NULL COMMENT '邮件属于哪位玩家',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '邮件标题',
`content` VARCHAR(1500) NOT NULL DEFAULT '' COMMENT '邮件正文',
`itemList` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '邮件附件物品列表使用json.dumps序列化为字符串',
`cTime` INT UNSIGNED NOT NULL COMMENT '邮件创建时间',
`expire` INT UNSIGNED NOT NULL COMMENT '邮件过期时间',
`srcName` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '邮件发送者',
`hasRead` TINYINT UNSIGNED NOT NULL COMMENT '是否已读',
`getBonus` TINYINT UNSIGNED NOT NULL COMMENT '是否已经领取奖励',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `uid_index` (`uid`) COMMENT '玩家uid索引方便检索属于某玩家的邮件',
INDEX `expire_index` (`expire`) COMMENT '过期时间索引,方便清理过期邮件'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 群发邮件
CREATE TABLE IF NOT EXISTS `neteaseGroupMail` (
`_id` INT UNSIGNED NOT NULL auto_increment COMMENT '唯一ID自增',
`effectTime` INT UNSIGNED NOT NULL COMMENT '生效时间,首次登录时间早于此时间的玩家才会收到此邮件',
`title` VARCHAR(40) NOT NULL DEFAULT 'empty' COMMENT '邮件标题',
`content` VARCHAR(1500) NOT NULL DEFAULT '' COMMENT '邮件正文',
`itemList` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '邮件附件物品列表使用json.dumps序列化为字符串',
`cTime` INT UNSIGNED NOT NULL COMMENT '邮件创建时间',
`expire` INT UNSIGNED NOT NULL COMMENT '邮件过期时间',
`srcName` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '邮件发送者',
PRIMARY KEY (_id) COMMENT '主键',
INDEX `expire_index` (`expire`) COMMENT '过期时间索引,方便清理过期邮件'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ###########################version1.0.3####################
-- 单人邮件:增加邮件附件长度限制
ALTER TABLE `neteaseUserMail` MODIFY COLUMN `itemList` VARCHAR (4000) NOT NULL DEFAULT '';
-- 群发邮件:增加邮件附件长度限制
ALTER TABLE `neteaseGroupMail` MODIFY COLUMN `itemList` VARCHAR (4000) NOT NULL DEFAULT '';
```
![image-20191230170155729](./images/chajian_sql.png)
- 修改neteaseAnnounce目录下的mod.json配置
![image-20200221210532737](./images/firstplugin03.png)
![image-20200221210532737](./images/firstplugin04.png)
- 新建空白网络服在大厅服配置neteaseAnnounce、在控制服配置neteaseAnnounceMaster、在功能服配置neteaseAnnounceService。
![image-20200221210532737](./images/firstplugin05.png)
## 官方插件开发测试
- 部署该网络服,部署完成后执行“开发测试”。
- 打开控制台调试执行POST指令mail-send-many。
![image-20200221210532737](./images/firstplugin06.png)
![image-20200221210532737](./images/firstplugin07.png)
![image-20200221210532737](./images/firstplugin08.png)
- 在游戏中查看效果
![image-20191230170211461](./images/image-20191230170211461.png)