暗黑2纯Linux服务器构建
在ubuntu server18.04上利用wine7.1运行暗黑2 D2GS 服务;从而实现纯linux服务器运行暗黑2服务
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,随意部署了
更多推荐
所有评论(0)