暗黑2纯Linux服务器构建

1 目标环境

ubuntu x86_64 18.04 server

2 软件版本

        pvpgn:   pvpgn-server-1.99.7.2.1.tar.gz  

        d2gs:    D2GS-113c.zip

        wine:     ver >=6.9 即可, 低版本因为一个socket模拟层BUG无法运行d2gs,这里使用winehq7.1

3 编译准备

       ubuntu x64不带32位环境,需要安装i386支持

        sudo dpkg --add-architecture i386

       sudo apt update

       sudo apt-get dist-upgrade

       sudo apt install gcc-multilib g++-multilib

       sudo apt install pkgconf

       export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig   #预防找不到安装的软件包

       编译wine HQ 7.1: 所有软件安装指向/usr/local方便后续制作成docker

       apt-get install flex

       apt-get install bison

       apt-get intstall libpng16-16:i386

       apt install gettext:i386

       apt install libgnutls*:i386

       开始编译wine HQ7.1: 这里由于运行d2gs不需要图形音频所以不准备依赖包,仅仅准备了png库

        xz + tar 解开软件包, 进入目录(root用户)

        ./configure --without-x --without-freetype --disable-win16    #不要x window, 不要字体,去掉win16支持

        make install

        漫长的编译, 我的本本大概耗费了4个小时。

        开始编译pvpgn, 解包后编译指令: linux32 ./configure CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 --prefix=/usr/local   

          make install #编译并安装

4 服务器设置

          D2GS: 这个没有啥说的,直接参考D2GS install 配置好。特别的详细, 一定要将反作弊关掉,不然带hackmap进去就掉了。 注册表 "EnableNTMode"=dword:00000000 关掉

          D2GS运行用户下, 执行wine dir,让wine建立好container环境。然后将d2gs拷贝到

~/.wine/driver_c目录里面。我的是 ~/.wine/driver_c/d2gs/ 对应wine目录为 c:\d2gs

          启动d2gs:  注册表WIN64路径为[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\D2Server\D2GS]

    wine若模拟的是早期windows32位系统,路径是  [HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS]     

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\D2Server\D2GS]
@="Diablo II Close Game Server"
"AutoUpdate"=dword:00000000
"AutoUpdateUrl"="http://your.website.url/for.update"
"AutoUpdateVer"=dword:00000000
"AutoUpdateTimeout"=dword:00007530
"D2CSIP"="192.168.1.101"
"D2CSPort"=dword:000017e1
"D2DBSIP"="192.168.1.101"
"D2DBSPort"=dword:000017e2
"MaxGames"=dword:00000064
"MaxGameLife"=dword:00003840
"AdminPassword"="9e75a42100e1b9e0b5d3873045084fae699adcb0"
"AdminPort"=dword:000022b8
"AdminTimeout"=dword:00000e10
"D2CSSecrect"="D2CS"
"EnableNTMode"=dword:00000001
"EnablePreCacheMode"=dword:00000001
"IdleSleep"=dword:00000001
"BusySleep"=dword:00000001
"CharPendingTimeout"=dword:00000258
"DebugNetPacket"=dword:00000000
"DebugEventCallback"=dword:00000000
"EnableGSLog"=dword:00000001
"EnableGELog"=dword:00000001
"EnableGEMsg"=dword:00000000
"EnableGEPatch"=dword:00000001
"IntervalReconnectD2CS"=dword:00000032
"MultiCPUMask"=dword:00000001
"MaxPreferUsers"=dword:000000b4
"MaxPacketPerSecond"=dword:000004b0
"ServerConfFile"="D2Server.ini"
"MOTD"="Hello world!"

         wine  regedit /C "c:\d2gs\d2gs.reg"    #载入注册表, 注意注册表内部的ip地址参考配置好

          wine "C:\d2gs\D2GSSVC.exe" -i
          wine net start D2GS     #这是启动命令, 会有一些因不带图形导致的error,忽略它
          wine net stop D2GS     #停止命令

          可telnet登陆 8888 端口,默认密码abcd123  

          启动pvpgn:  这里使用最简单的plain目录存放模式,服务器日志也未关闭

          d2cs

          d2dbs

           bnetd

           可以写一个脚本负责启停

5 运行测试

           修改暗黑2注册表bnet地址指向ubuntu server服务器

           HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\Diablo I

           HKEY_CURRENT_USER\Software\Battle.net\Configuration

            附一张运行图片,到此一个可以运行的暗黑2 纯Linux服务构建完成,下一步就是做成docker,随意部署了    

           

     

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值