Sign inSign up

xanderye/dnf-server

By xanderye

•Updated over 3 years ago

地下城与勇士 85版本 老牛1.6E Final 服务端(不包含数据库)

Image
4

10K+

xanderye/dnf-server repository overview

⁠dnf服务端

Github⁠

⁠说明

  1. 使用libhook.so优化了CPU占用,1-2分钟出五国,占用10%以内
  2. 集成了DP2插件,默认不开启,使用环境变量DP2开启 (tag >= centos7-20220112-2),采用了加载器2方式(替换libGeoIP.so.1)
  3. game密码限制必须8位,否则无法连接
  4. 由于无法更改dnf连接mysql的端口配置,使用了rinetd映射mysql的ip和端口,配置文件在 /etc/rinetd.conf
  5. 修改环境变量重启即刻生效

⁠启动

version: "2.3"

services:
  dnfserver:
    image: xanderye/dnf-server:centos7
    environment:
      - TZ=Asia/Shanghai
      # 关闭自动获取
      - AUTO_MYSQL_IP=false
      # mysql容器名称(主机名)
      - MYSQL_NAME=dnfmysql
      # mysql的IP地址
      - MYSQL_IP=192.168.1.2
      # mysql的IP端口
      - MYSQL_PORT=3306
      # game账户密码
      - GAME_PASSWORD=uu5!^%jg
      # 自动获取公网ip
      - AUTO_PUBLIC_IP=false
      # 这里填写你的IP地址
      - PUBLIC_IP=127.0.0.1
      # DP2插件
      - DP2=false
      - GM_ACCOUNT=gm_user
      - GM_PASSWORD=123456
      - GM_CONNECT_KEY=763WXRBW3PFTC3IXPFWH
      - GM_LANDER_VERSION=20180307
    shm_size: 8g
    memswap_limit: -1
    mem_limit: 1g
    # windows下生效
    cpu_count: 1
    # 占用1个cpu
    cpus: 1.0
    network_mode: bridge
    restart: unless-stopped
    ports:
      - 7600:7600/tcp       # DnfGateServe 网关
      - 881:881/tcp         # DnfGateServe 网关
      - 20303:20303/tcp     # df_dbmw_r
      - 20303:20303/udp     # df_dbmw_r
      - 20403:20403/tcp     # df_dbmw_r
      - 20403:20403/udp     # df_dbmw_r
      - 40403:40403/tcp     # df_manager_r
      - 40403:40403/udp     # df_manager_r
      - 7000:7000/tcp       # df_bridge_r
      - 7000:7000/udp       # df_bridge_r
      - 7001:7001/tcp       # df_channel_r
      - 7001:7001/udp       # df_channel_r
      - 7200:7200/tcp       # df_relay_r
      - 7200:7200/udp       # df_relay_r
      - 10011:10011/tcp     # df_game_r
      - 31100:31100/tcp     # df_community
      - 30303:30303/tcp     # df_monitor_r
      - 30303:30303/udp     # df_monitor_r
      - 30403:30403/tcp     # df_guild_r
      - 30403:30403/udp     # df_guild_r
      - 10052:10052/tcp     # df_game_r
      - 20011:20011/tcp     # df_game_r
      - 20203:20203/tcp     # df_dbmw_r
      - 20203:20203/udp     # df_dbmw_r
      - 30703:30703/udp     # df_coserver_r
      - 11011:11011/udp     # df_game_r
      - 2311-2313:2311-2313/udp   # df_stun_r
      - 30503:30503/udp     # df_statics_r
      - 11052:11052/udp     # df_game_r
    volumes:
      - ./data:/data
      - ./log:/home/neople/game/log
    container_name: dnfserver

⁠DP2插件说明

持久化 ./data/dp2/ ,映射到容器中 /dp2/
df_game_r.lua 中编写插件,调用到脚本就将脚本放入 script 中。
容器集成了 mysql 客户端,脚本中需要执行sql命令时,命令为 mysql -h127.0.0.1 -ugame -p$GAME_PASSWORD。

⁠环境变量

AUTO_MYSQL_IP: 和dnfmysql使用统一自定义网桥使用,支持自动获取mysql的ip

MYSQL_NAME: dnfmysql容器名,用户自动获取mysql的ip

MYSQL_IP: mysql的ip

MYSQL_PORT: mysql的端口

GAME_PASSWORD: game账户密码,必须8位

AUTO_PUBLIC_IP: 自动获取公网ip

PUBLIC_IP: 你的ip地址

DP2: dp2插件

GM_ACCOUNT: GM账户名

GM_PASSWORD: GM密码

GM_CONNECT_KEY: 网关KEY

GM_LANDER_VERSION: 网关版本

Tag summary

Content type

Image

Digest

sha256:044e006e0…

Size

298.2 MB

Last updated

over 3 years ago

docker pull xanderye/dnf-server:centos7-latest