# 生存+RPG服模板简介
# 概述
这是常见的带生存元素的RPG网络游戏模板,包含常见的功能,供开发者参考学习。
玩家进入游戏后来到大厅,通过npc可跳转到领地、副本、资源世界、珍稀资源世界四个场景。领地可实现地皮认领、传送、权限赋予等功能,副本可挑战不同难度的npc,资源世界相当于原版游戏的主世界,珍稀世界相当于原版游戏的下界。上述场景有可以回到大厅的npc。
主菜单中包含属性、宝石、PVP、称号、摆摊、公会、排行榜、签到、聊天、好友等功能。
# 如何运行模板
- 步骤1:MCStudio——新建——基岩版网络服——生存+RPG模板。
- 步骤2:在基岩版服务器找到新建的模板,打开Mod目录,找到neteaseRPGRawer中的mod.sql,在远程开发机上执行mod.sql。
- 步骤3:部署网络服,部署完成后点开发测试,运行生存+RPG服。
# 游戏功能说明
# 1、npc
名字 | 位置 | 数量 | 功能 |
---|---|---|---|
管家 | 大厅 | 1 | 前往领地 |
旅行者 | 大厅 | 1 | 前往资源世界 |
灵魂引导者 | 大厅 | 1 | 前往珍稀资源世界 |
镜像冒险家 | 大厅 | 1 | 前往副本 |
管家·返 | 领地 | 1 | 返回大厅 |
旅行者·返 | 副本 | 1 | 返回大厅 |
灵魂引导者·返 | 资源世界 | 1 | 返回大厅 |
镜像冒险家·返 | 珍稀资源世界 | 1 | 返回大厅 |
武器商人 | 大厅 | 1 | 购买武器升级道具 |
宝石商人 | 大厅 | 1 | 购买宝石升级材料 |
道具商人 | 大厅 | 1 | 购买回血道具 |
呆子村长 | 大厅 | 1 | 无 |
领地管家 | 每块地皮中间 | 地皮数量 | 认领地皮 |
# 2、主菜单
- 其中PVP功能只能在珍稀资源世界中打开,摆摊功能只能在大厅、领地中打开。
# 3、自定义内容
- 游戏中有三种货币:银币、探险值、公会勋章。银币暂无投放途径,可用于玩家之间摆摊交易以及购买药水。探险值来源于每日副本,可用于购买装备。公会勋章来源于每日排行榜结算奖励,可用于购买宝石。
# 4、领地
- 与地皮中的npc对话可完成地皮认领。
- 点击主菜单“领地”按钮,完成权限操作、领地传送。
# 5、战斗属性
- 点击主菜单“属性”按钮,可查看总属性。
- 等级提升、装备、宝石以及称号都会带来属性提升。
- 无源伤害需要开启,在资源世界,跌落、窒息和岩浆伤害是原版的3倍。在珍稀资源世界,跌落和岩浆伤害是原版的5倍。
# 6、PVP
- 在珍稀资源世界强制开启PVP功能,其余场景无法开启PVP功能。
- 在珍稀资源世界死亡后,背包中的以下物品将掉落:灵魂沙、萤石、恶魂之泪、烈焰棒、岩浆膏。
# 7、副本
- 需在组队状态下且队伍人数1~3可进入副本。
- 副本有5个难度,不同难度的副本具有进入等级要求。
- 不同难度的副本,怪物属性、击杀数量要求、副本时间、结算奖励不同。
# 8、组队
- 包括创建队伍、队伍操作、搜索队伍等功能。
# 9、称号
- 可用于展示所有称号并管理已获得的称号。
# 10、摆摊
- 可在大厅、领地召唤npc进行摆摊,上架物品。
- 每小时会收取一定的摆摊费用。
- 可以点击其他玩家召唤的摆摊npc购买商品。
# 11、签到活动
- 以一周为周期,每天登陆后可在活动界面领取当天的签到奖励。
# 12、公会
- 包括公会的创建、邀请、退出、搜索等基本操作。
# 13、聊天
- 通过主菜单的“聊天”按钮进入。
- 与原版聊天相比,增加本地、世界两个频道的聊天内容。本地表示当前服务器,世界代表所有服务器。
- 支持物品超链接,可把物品栏中的物品描述发送到聊天栏中。
- 可在聊天栏中选中玩家并加为好友或私聊。
# 14、排行榜
- 全服排行榜,榜中有两列,分别记录公会名称、公会人数,排行榜按公会人数排序。
- 前20名的公会将上榜。
- 每天21:00,排行榜结算。奖励将通过邮件发送到获奖公会的全体成员。
# 15、好友
- 包括好友添加、删除、聊天功能。
# 16、运营日志
- 实际运营中,运营日志必不可少,本模板选取了一部分进行记录,我们建议开发者尽可能详细地记录网络游戏运营日志,以便发现问题。
- 领地进入与认领情况:1)进入领地时记录角色ID。2)认领领地时记录角色ID。
- 副本参与、完成情况:1)进入副本时记录副本难度、组队人数、角色ID。2)完成副本时记录副本难度、组队人数、角色ID。
- 商店购买情况:1)在武器、宝石、道具商店购买商品时,记录购买的物品类型、数量、角色ID。
- 公会参与情况:1)加入公会时记录角色ID、公会ID。2)离开公会时记录角色ID、公会ID。3)每日排行榜结算时,记录排行榜前20的数据。
- 摆摊情况:1)开始摆摊时记录角色ID。2)打开别人摊位时记录浏览者ID、摊主ID。3)购买物品时记录购买者ID、摊主ID、出售物品、数量、单价、总价。
- 死亡记录:1)死亡时记录角色ID、所在维度。
- 升级记录:1)升级的时候记录角色ID、升到的等级。
- 属性记录:1)角色离开游戏时,记录角色ID,各项战斗属性及其数值。
# 配置说明
可通过修改、增加配置,丰富模板的游戏体验,说明如下:
# 1、官方Mod配置
- 在每个developer_mods中的mod.json文件,对官方插件的内容进行修改、增加。
- 在neteaseBattle\behavior_packs\neteaseBattleBehavior\neteaseBattleScript\fmt.py文件,对自定义装备、物品的描述进行修改、增加。
# 2、模板内容配置
自定义物品、生物放在neteaseRawer\behavior_packs目录下。
升级消耗经验及属性放在neteaseRawer\behavior_packs\neteaseRawerBeh\neteaseRawerScript\commonConfig\rawerAttrConfig.py。
副本常规设置放在neteaseRawer\behavior_packs\neteaseRawerBeh\neteaseRawerScript\commonConfig\rawerBattleConfig.py。
副本怪物属性放在neteaseRawer\behavior_packs\neteaseRawerBeh\neteaseRawerScript\commonConfig\rawerMonsterConfig.py。
货币、药水、宝石、装备属性等内容放在neteaseRawer\behavior_packs\neteaseRawerBeh\neteaseRawerScript\commonConfig\rawerItemConfig.py。
排行榜奖励放在neteaseRawer\behavior_packs\neteaseRawerBeh\neteaseRawerScript\commonConfig\rawerRankConfig.py。
# 插件代码说明
为了实现本模板,我们添加了一些核心代码统筹各个官方插件,另外还对官方插件做了一些调整。如果开发者愿意通过代码对本模板进一步了解,可仔细阅读以下部分。
# 1、公告
- 修改setlayer逻辑,让界面堆叠更合理
# 2、面板描述
- 无修改
# 3、战斗系统
fmt.py配置了新增装备
修改setlayer逻辑
mod.json不配置物品
battlePlayer中def GetAllAttribute(self):将称号属性包含
battleDamageMgrServer中加了设置无源伤害倍率的功能,添加了杀死一个怪物的函数接口
battleGameObjMgrServer将离线时将属性记录在运营日志中
battleServerSystem设置怪物属性、装备属性,提供了除了在mod.json中配置之外的另外一种方案
# 4、聊天
- 修改setlayer逻辑,让界面堆叠更合理
# 5、云端玩家信息
- 无修改
# 6、每日登陆
修改setlayer逻辑,让界面堆叠更合理
dailyServerSystem增加每日功能尚未领取判断
# 7、副本
- 修改setlayer逻辑,让界面堆叠更合理
# 8、好友
- 修改setlayer逻辑,让界面堆叠更合理
# 9、公会
取消原有入口,入口改到主菜单
修改setlayer逻辑,让界面堆叠更合理
增加获取所有公会成员接口,用于排行榜发奖
运营数据记录:加入公会时记录角色ID、公会ID,离开公会时记录角色ID、公会ID,每日排行榜结算时,记录排行榜前20的数据
# 10、宝石
- 修改setlayer逻辑,让界面堆叠更合理
# 11、称号
- 无修改
# 12、主菜单
menu初始化界面完成之后,给主逻辑一个事件,然后主逻辑才能设置按钮的是否可按状态,否则会失败
原生menu控件的点击按钮响应是直接发送给了按钮控件的服务端mod处理,改写后直接把事件发送给了主逻辑,然后在主逻辑里面处理是直接显示界面
# 13、功能NPC
- 无修改
# 14、pvp
- 增加了锁定pvp功能
# 15、排行榜
修改setlayer逻辑,让界面堆叠更合理
增加结算逻辑
# 16、领地
认领、进入领地时记录玩家ID运营日志
ResidenceMyUI中,隐藏新建、改建领地入口
修改setlayer逻辑,让界面堆叠更合理
residenceGasMgr中增加地皮构建逻辑:InitRawerResidence,增加了初始地皮无属主的逻辑,增加了认领地皮的逻辑,增加了不允许新建、改建领地的提示
# 17、队伍
调整队伍插件UI位置,使其和聊天插件界面不冲突
OnPosDataToAllMembersReq,队长主导开始进入副本服后,向所有队员发送事件,队员也会一起开始转服进对应的副本
# 18、摆摊
在npc商店购买时记录相关运营日志
开始摆摊时、打开别人摊位时、在别人摊位购买时记录运营日志
tradeMgr中维护已连接的服务器ID,在摊位过期的时候,能广播给server,然后server能够去掉对应的摊位NPC
# 核心代码说明
# 1、neteaseRawer——game服通用
behavior_packs 1)副本中怪物的行为、属性配置
2)角色属性配置
3)各等级副本的通关要求、开放等级配置
4)各种物品的属性、tips配置
5)排行榜奖励配置
6)副本选择、积分、进入、结算界面
7)主菜单按钮状态、提示
8)各类自定义物品、合成配方
9)领地、资源世界、珍稀资源传送平台结构
develop_mods 1)游戏各种主要逻辑,包含但不限于:角色、怪物属性设置,升级,加经验,复活,玩家登录、离开服务器,使用物品, 死亡,货币变化。
resource_packs 1)各种自定义物品、NPC的外观、贴图资源
worlds 1)不包含具体地图
# 2、neteaseRawerOverload——领地game服
behavior_packs 1)购买领地
develop_mods 1)购买领地
2)设置出生点、游戏模式、难度
- worlds 1)领地地图
# 3、neteaseRawerMine——资源世界game服
behavior_packs 1)通用代码
develop_mods 1)设置不同资源世界的伤害系数
2)设置出生点、游戏模式、难度
worlds 1)原版资源世界地图的主世界和下界,无需新增地图
# 4、neteaseRawerGame——副本game服
behavior_packs 1)通用代码
develop_mods 1)副本各种主要逻辑:玩家进入副本、怪物死亡结算、玩家死亡计算、玩家复活、离开副本
2)设置出生点、游戏模式、难度
worlds 1)副本地图
# 5、neteaseRawerLoby——大厅服
behavior_packs 1)通用代码
develop_mods 1)大厅各种主要逻辑:开启主城保护,禁止主城刷怪,加载NPC,NPC打开功能界面以及具体跳转功能,召集队员进副本
2)设置出生点、游戏模式、难度
worlds 1)大厅地图
# 6、neteaseRankService——功能服
- behavior_packs 1)排行榜计算、结算、发奖。