--- front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/WAR5.f387a305.png hard: 进阶 time: 60分钟 --- # 小游戏服模板简介 ## 概述 ​ 这是常见的小游戏网络游戏模板,供开发者参考学习。 ​ 玩家进入游戏后来到大厅,大厅有5个npc。分别用于报名起床战争、购买飞行特权、购买外观商品、查看排行榜单、展示榜首玩家外观。 ![](./images/WAR1.png) ​ 通过npc“报名专员”报名起床战争游戏,报名后进行匹配,匹配成功后进入起床战争,结算后将返回大厅。 ​ 起床战争结算时,胜场数以及总参与场数将更新到胜场排行榜,通过npc“榜单专员”可查看排行榜信息。每天0:00排行榜将结算,榜单前50的玩家将获得一定数量的积分券。每月1日0:00重置排行榜。 ​ 榜首玩家的形象将出现在大厅。 ​ 积分券可用于在“飞行专员”处购买30天飞行体验券或永久飞行券,也可用于在“外观专员”处购买部分外观。 ​ 游戏经过**商业化审**核后,可在左上角进入商城,通过钻石购买游戏币,游戏币可用于在“外观专员”处购买部分外观。 ## 如何运行模板 - 步骤1:MCStudio——新建——基岩版网络服——小游戏模板。 ![](./images/WAR2.png) - 步骤2:在基岩版服务器找到新建的模板,打开Mod目录,找到neteaseWars中的mod.sql,在远程开发机上执行mod.sql。 ![](./images/WAR3.png) - 步骤3:部署网络服,部署完成后点开发测试,运行小游戏模板。 ![](./images/WAR4.png) ## 游戏功能说明 ### 1、npc | 名字 | 位置 | 数量 | 功能 | | -------- | ---- | ---- | ---------------------------------------------------- | | 报名专员 | 大厅 | 1 | 报名起床战争 | | 榜单专员 | 大厅 | 1 | 查看胜场榜单 | | 飞行专员 | 大厅 | 1 | 购买飞行券 | | 外观专员 | 大厅 | 1 | 购买时装、翅膀、坐骑、光环等外观资源 | | 榜首形象 | 大厅 | 1 | 排行榜结算时,显示榜首玩家形象(初始无数据时不显示) | ### 2、报名 - 报名后,弹出等待信息栏。人数满4人后进入起床战争。 ![](./images/WAR5.png) ### 3、起床战争 - 起床战争复用基岩版组件——起床战争模板,每队人数改成2。 ![](./images/WAR6.png) ### 4、排行榜 - 按胜场数进行排序,最多显示50人。 - 每日0:00排行榜进行结算,前50的玩家可获得积分券。 - 每月1日0:00重置排行榜。 ![](./images/WAR7.png) ### 5、榜首形象 - 排行榜每日结算时,榜首玩家的形象将出现在大厅服。 ![](./images/WAR8.png) ### 6、飞行商店 - 飞行商店购买飞行体验券之后,就可以在大厅使用飞行功能。 ![](./images/WAR9.png) ![](./images/WAR10.png) ### 7、外观衣柜 - 可在外观专员处打开衣柜,购买或更换时装、翅膀、坐骑、光环等资源。 ![](./images/WAR11.png) ## 配置说明 ​ 可通过修改、增加配置,丰富模板的游戏体验,说明如下: - 在每个developer_mods中的mod.json文件,对官方插件的内容进行修改、增加。(例如外观商店、飞行功能、飞行商店、排行榜等内容) - 自定义物品、货币放在neteaseWars\behavior_packs\netease_items_beh之下。 ## 插件代码说明 ​ 为了实现本模板,我们添加了一些核心代码统筹各个官方插件,另外还对官方插件做了一些调整。如果开发者愿意通过代码对本模板进一步了解,可仔细阅读以下部分。 ### 1、飞行插件 - neteaseFly\developer_mods\neteaseFlyDev\neteaseFlyScript\flyServerSystem.py中,OnFlyStateChange增加是否可飞行的判断。 ### 2、匹配插件 - neteaseMatch\developer_mods\neteaseMatchDev\neteaseMatchScript\matchServerSystem.py中,OnMatchResult增加申请游戏房间操作。 ### 3、排行榜 - neteaseRankService\developer_mods\neteaseRankDev\neteaseRankScript\rankDataManager.py中,realRankAward增加发奖、每月重置功能。 ### 4、起床战争 - 新建起床战争模板,再将其转化成网络服mod。 ![](./images/WAR13.png) ![](./images/WAR12.png) - neteaseBedwar\developer_mods\neteaseBedwar\script_World\worldServerSystem.py以及neteaseBedwar\behavior_packs\neteaseBedwarBehavior\script_World\worldServerSystem.py中,设置游戏规则的接口改成服务器API:SetGameRulesInfoServer。 - neteaseBedwar\developer_mods\neteaseBedwar\script_Team\editorConfig.py以及neteaseBedwar\behavior_packs\neteaseBedwarBehavior\script_Team\editorConfig.py中,设置队伍人数。 - neteaseBedwar\developer_mods\neteaseBedwar\script_EndLogic\editorConfig.py以及neteaseBedwar\behavior_packs\neteaseBedwarBehavior\script_EndLogic\editorConfig.py中,将每局结束清空背包设为True。 - neteaseBedwar\script_Team\modServer\serverSystem\teamServerSystem.py 中,根据匹配的结果来分队,而不是按照进入游戏的先后顺序分队。 - neteaseBedwar\developer_mods\neteaseBedwar\script_StartLogic\startLogicServerSystem.py中,增加开局逻辑,开局逻辑将在核心代码说明中介绍。 - neteaseBedwar\developer_mods\neteaseBedwar\script_EndLogic\endLogicServerSystem.py中,增加游戏中途退出的处理逻辑,增加结算、发奖逻辑,结算逻辑将在核心代码说明中介绍。 - neteaseBedwar\script_Currency\modServer\serverSystem\currencyServerSystem.py中,增加一个集合用于记录当前服务器参与起床战争的玩家,若加入游戏,则进入该集合,若退出游戏,则从该集合中移除。集合中的玩家,定期将背包中的货币更新到界面中。 ## 核心代码说明 ### 1、neteaseWars - game服、lobby服通用 - behavior_packs 1)两种飞行体验券、两种货币配置。 2)起床战争中增加离开逻辑,增加结算显示逻辑。 3)从大厅进入起床战争之前,增加二次确认功能。若玩家选择确认,则向服务器发起申请游戏房间请求。 4)对于新增的两种飞行体验券以及两种货币,双击物品栏,将使用该位置全部堆叠物品。 5)榜首形象设置。 - develop_mods 1)控制大厅服npc创建。 2)进入、离开起床战争的服务器跳转。 - resource_packs 1)各种自定义物品、界面资源 - worlds 1)不包含具体地图 ### 2、neteaseWarsLobby - lobby服通用 - worlds 1)大厅服地图 ### 3、neteaseWarsLobbyService - 功能服通用 - develop_mods 1)统筹管理各个game服的房间。