官方MOD说明替换官方MOD引擎初始化脚本开服工具角色进阶master目录developer_modsnetgame_scripts & scriptsmaster_conf.jsonnetgame_common.json部署配置转换servicedeveloper_modsservice_conf.jsongame & lobby目录server.propertiesdeveloper_mods,resource_packs,behavior_packsproxy目录proxy.local.config
官方MOD说明
以master为例,developer_mods目录自带官方MOD如下
- neteaseLogin,登录MOD
- neteaseMasterHotfix,热更MOD
- neteaseMasterHunter,执行指令/脚本MOD
- neteaseCommonSilent,禁言/解除禁言MOD
- neteaseMonitor 监控数据MOD
替换官方MOD
以neteaseCommonSilent
为例
- 在自己的MOD目录下添加修改后的neteaseCommonSilent
- 配置mods字段
部署的组装过程顺序是引擎、官方MOD、自定义MOD按列表顺序加载,后者会覆盖前者
引擎初始化脚本
-
在server.properties同级目录,可以添加引擎初始化脚本init.sh
-
部署脚本在启动加载该MOD的引擎前,会在当前目录执行init.sh进行对应的初始化操作
-
引擎如果加载了多个MOD,且均配置了init.sh初始化脚本,则会按照deploy.json配置的MOD顺序执行相应的init.sh
-
init.sh示例1:移除官方禁言MOD
xxxxxxxxxx
rm -rf developer_mods/neteaseCommonSilent
echo "init result $?"
-
init.sh示例2:移除糖的合成配方
x
rm -f behavior_packs/vanilla/recipes/sugar.json
echo "init result $?"
开服工具角色进阶
以下所有目录均以项目sample为例介绍
master
目录
/home/fuzhu/netgame/app/sample/master/master_master_8503
目录内容如下所示:
developer_mods
- 服务端加载的MOD目录,不会被传送到客户端。
netgame_scripts & scripts
- python引擎相关目录,不可修改。
master_conf.json
- master配置 { "http_port": 8503, "keep_alive_period":10 }
keep_alive_period
表示心跳是10shttp_port
是master的http服务监听的tcp端口,只能使用8000-9000的端口。
netgame_common.json
- 全局公共配置,由部署工具deploy_client生成
- serverlist中可以看到所有服务的ip,端口等
示例如下: { "game": [ { "app_type": "game", "app_version": "1.9.0", "ip": "111.222.333.444", "mods": "game", "num": 1, "type": "game" } ], "lobby": [ { "app_type": "lobby", "app_version": "1.9.0", "ip": "111.222.333.444", "mods": "lobby", "num": 1, "type": "lobby" } ], "proxy": [ { "app_type": "proxy", "app_version": "1.9.0", "ip": "111.222.333.444", "mods": "", "num": 1, "type": "proxy" } ], "servicelist": [ { "app_type": "service", "app_version": "1.9.0", "http_port": 9002, "ip": "111.222.333.444", "mods": "service", "module_names": [ "event", "idv_service", "netease_salog_0", "report" ], "serverid": 10, "type": "service" } ], "netgame_common_url": "http://111.222.333.444:8503/conf/query/get-netgame-common", "nginx_netgame_common_url": "http://111.222.333.444:8503/conf/query/get-netgame-common", "log_debug_level":true, "online_mode":false, "redis":{ "host":"111.222.333.444", "port":6379, "password":"" }, "mysql":{ "host":"111.222.333.444", "user":"minecraft", "password":"minecraft", "database":"minecraft", "port":3306 } }
部署配置转换
- deploy.json和netgame_common.json可以互相转换
- 如果您希望指定某个服务器进行更新部署,如删除某个id的服务器,可以按如下步骤执行:
- 拷贝current目录的netgame_common.json到项目目录PROJECT_DIR
- 将netgame_common.json里指定id的服务器删除
- 把项目目录下的deploy.json移除
- 执行deploy
- 完成后,current目录的deploy.json的数量和
netgame_common.json
已经更新 - 重新把current里的deploy.json放回PROJECT_DIR,并移除
netgame_common.json
service
developer_mods
- 服务端加载的MOD目录,不会被传送到客户端。
service_conf.json
- service配置 { "serverid":10, "base_config_url": "http://11.1.1.1:8509", "network_config_url": "http://111.1.1.1:8888/obt/netgame_common.json", }
serverid
表示service的服务器id,service从netgame_common.json中获取服务器ip和端口。base_config_url
是master的http服务器地址。network_config_url
是获取netgame_common.json的http服务器地址。
game & lobby
目录
game目录:
/home/fuzhu/netgame/app/sample/game/game_game_3000000
目录内容如下:
/home/fuzhu/netgame/app/sample/lobby/lobby_lobby_2000000
server.properties
xxxxxxxxxx
level-name=level
level-seed=3351608
level-type=
generate-structures=true
pvp=false
gamemode=2
difficulty=2
spawn-protection=16
force-gamemode=false
spawn-animals=false
spawn-monsters=false
spawn-npcs=false
enable-command-block=false
op-permission-level=3
hardcore=false
allow-cheats=false
max-players=1000
server-port=20000
online-mode=false
# 以下选项均由部署工具自动生成,不填就行
# 服务器id,跟netgame_common.json里serverlist的serverid对应
netgame-server-id=3
# true表示需要通过proxy转发,false表示不通过proxy转发
net-safe-and-fast=true
# 通过master的http获取公共配置的地址
netgame-config-url=http://123.456.789:8503/conf/query/get-netgame-common
- server-port=20000不要改,避免占用了部署工具自动分配的端口,实际这个端口没用上
- max-players=1000不要调整过大,设置成合适的,服务器启动的时候会根据这个配置预申请内存
developer_mods,resource_packs,behavior_packs
- 同上,服务端加载的MOD目录
参见文件目录
proxy
proxy目录:
/home/fuzhu/netgame/app/sample/proxy/proxy_proxy_1000000
目录
proxy.local.config
proxy配置示例: { "network_config_url":"http://123.456.789:8503/conf/query/get-netgame-common", "serverid":1 }