Diablo 1.11b quest! PVPGN + d2gs + wine на freebsd 5.5
Терка следующая.
Под фрей запустить сервер diablo 2 closed (d2gs 1.11b) который без Xов, удаленно по SSH.
Ставится pvpgn. Последняя версия 1.8.0. (есть в портах).
По его настройке в сети и так уже полно доков, поэтому шаг пропускаем.
Настраивается, инсталицца! В конфигах все грамотно расписано, получаем рабочие сервисы:
BNETD,D2CS,D2DBS
Между собой линкуются. Варик, старик - работают без проблем.
Далее нужно поставить d2gs - гейм сервер дийаблы.
_http://www.pvpgn.pl/d2gs/
Польские друзья любезно предоставили возможность скачать версию сервера для 1.11b
Для работы d2gs необходим windows.
Ставим wine (собирается неуклюже из портов и тянет с собой ненужных либ для поддержки иXов)
~/scripts#=> pkg_info | grep wine
wine-0.9.42,1 Microsoft Windows compatibility layer for Unix-like systems
Всякие ttydrv по советам умных дядек не работают, поэтому ставим Xvfb (то есть юзаем).
Файлы, которые нужны для сервера.
Проверено что на системе windows xp sp2 сервер успешно выполняет свои функции..
msvcp60.dll скопируйте со своего компьютра (его нет в комплекте wine'а).
Отредактируйте файл d2.reg замените там 2 IP сервера на свои
и выключите EnableNtMode, а то не заведется.
Выполните wine regedit d2.reg, и проверяйте system.reg на наличие новоиспеченных записей для d2gs.
Скрипт запуска сервера
Полагаем, что bnetd с сопутствующими сервисами запущен, стартуем скрипт.
Сообщений куча, не пугайтесь. Загружается долго, моя предполагает, что обработка базы данных реестра тормозит.
Об этом говорят сообщения, если запустить wine с отладкой сообщений в режиме trace.
Начинается все с...
Мораль басни
После поднятия всех сервисов sockstat для них примерно такой
Пытаемся создать игру в diablo 2:
Показывается заставка (монах пытается зайти в храм). Полминуты ничего не происходит, затем сообщение "failed to connect".
(прим.: в нормальных условиях вход в храм озаряется ярким светом и игра стартует).
Заходим telnetом на 127.0.0.1:8888, и видим
Коннект сервисов осуществлен, но почему то нет коммуникации между d2gs и d2dbs...
Обратите внимание на НУЛИ напротив D2DBS... непорядок!
В логах
d2ge.log
d2gs.log
По-видимому, Что то не так с сокетами.
И при попытке зайти в игру создается файл
Аля я крутой хаксор...
Позадавал вопросы на забугорных форумах, ирках - ответов - н0ль.
Может кто поможет советом? В чем может быть проблема...
@author: J4ck
@Comments: Shit happens
@email: j4ck at molod dot ru
Под фрей запустить сервер diablo 2 closed (d2gs 1.11b) который без Xов, удаленно по SSH.
Ставится pvpgn. Последняя версия 1.8.0. (есть в портах).
По его настройке в сети и так уже полно доков, поэтому шаг пропускаем.
Настраивается, инсталицца! В конфигах все грамотно расписано, получаем рабочие сервисы:
BNETD,D2CS,D2DBS
Между собой линкуются. Варик, старик - работают без проблем.
Далее нужно поставить d2gs - гейм сервер дийаблы.
_http://www.pvpgn.pl/d2gs/
Польские друзья любезно предоставили возможность скачать версию сервера для 1.11b
Для работы d2gs необходим windows.
Ставим wine (собирается неуклюже из портов и тянет с собой ненужных либ для поддержки иXов)
~/scripts#=> pkg_info | grep wine
wine-0.9.42,1 Microsoft Windows compatibility layer for Unix-like systems
Всякие ttydrv по советам умных дядек не работают, поэтому ставим Xvfb (то есть юзаем).
#!/bin/sh
# скрипт для запуска виртуального буффера
killall Xvfb
/usr/X11R6/bin/Xvfb :1 -screen 0 1x1x32 &
Файлы, которые нужны для сервера.
Проверено что на системе windows xp sp2 сервер успешно выполняет свои функции..
-rw-r--r-- 1 j4ck wheel 131072 11 авг 22:40 Bnclient.dll
-rw-r--r-- 1 j4ck wheel 159744 11 авг 22:40 D2CMP.dll
-rw-r--r-- 1 j4ck wheel 1093632 11 авг 22:40 D2Client.dll
-rw-r--r-- 1 j4ck wheel 679936 11 авг 22:40 D2Common.dll
-rw-r--r-- 1 j4ck wheel 69632 11 авг 22:40 D2DDraw.dll
-rw-r--r-- 1 j4ck wheel 110592 11 авг 22:40 D2Direct3D.dll
-rw-r--r-- 1 j4ck wheel 81920 11 авг 22:40 D2GS.exe
-rw-r--r-- 1 root wheel 83 13 авг 22:02 D2GSLib-Debug.txt
-rw-r--r-- 1 j4ck wheel 1138688 11 авг 22:40 D2Game.dll
-rw-r--r-- 1 j4ck wheel 53248 11 авг 22:40 D2Gdi.dll
-rw-r--r-- 1 j4ck wheel 98304 11 авг 22:40 D2Glide.dll
-rw-r--r-- 1 j4ck wheel 77824 11 авг 22:40 D2Lang.dll
-rw-r--r-- 1 j4ck wheel 167936 11 авг 22:40 D2Launch.dll
-rw-r--r-- 1 j4ck wheel 49152 11 авг 22:40 D2MCPClient.dll
-rw-r--r-- 1 j4ck wheel 126976 11 авг 22:40 D2Multi.dll
-rw-r--r-- 1 j4ck wheel 49152 11 авг 22:40 D2Net.dll
-rw-r--r-- 1 j4ck wheel 143360 11 авг 22:40 D2Win.dll
-rw-r--r-- 1 j4ck wheel 77824 11 авг 22:40 D2gfx.dll
-rw-r--r-- 1 j4ck wheel 98304 11 авг 22:40 D2sound.dll
-rw-r--r-- 1 j4ck wheel 212992 11 авг 22:40 Fog.dll
-rw-r--r-- 1 j4ck wheel 9972 11 авг 22:40 ItemConfig.dat
-rw-r--r-- 1 j4ck wheel 5605809 11 авг 22:42 Patch_D2.mpq
-rw-r--r-- 1 j4ck wheel 95232 11 авг 22:40 SmackW32.dll
-rw-r--r-- 1 j4ck wheel 372736 11 авг 22:40 Storm.dll
-rw-r--r-- 1 j4ck wheel 200704 11 авг 22:40 binkw32.dll
-rw-r--r-- 1 j4ck wheel 266908965 11 авг 22:41 d2char.mpq
-rw-r--r-- 1 j4ck wheel 256225123 11 авг 22:41 d2data.mpq
drwxr-xr-x 2 root wheel 512 12 авг 22:37 d2e/
-rw-r--r-- 1 j4ck wheel 250156780 11 авг 22:42 d2exp.mpq
-rw-r--r-- 1 root wheel 32158 13 авг 22:02 d2ge.log
-rw-r--r-- 1 root wheel 115275871 13 авг 22:29 d2gs.log
-rw-r--r-- 1 j4ck wheel 2333 11 авг 22:42 d2gs.script
-rw-r--r-- 1 j4ck wheel 80384 11 авг 22:40 d2server.dll
-rw-r--r-- 1 j4ck wheel 4057 11 авг 22:53 d2server.ini
-rw-r--r-- 1 j4ck wheel 51948991 11 авг 22:42 d2sfx.mpq
-rw-r--r-- 1 j4ck wheel 163021838 11 авг 22:42 d2speech.mpq
-rw-r--r-- 1 root wheel 0 11 авг 22:47 debug.log
-rw-r--r-- 1 j4ck wheel 180224 11 авг 22:40 ijl11.dll
-rwxrwxrwx 1 quake quake 413696 11 авг 23:24 msvcp60.dll*
msvcp60.dll скопируйте со своего компьютра (его нет в комплекте wine'а).
Отредактируйте файл d2.reg замените там 2 IP сервера на свои
и выключите EnableNtMode, а то не заведется.
Выполните wine regedit d2.reg, и проверяйте system.reg на наличие новоиспеченных записей для d2gs.
Скрипт запуска сервера
#!/bin/sh
export WINEDEBUG='warn+all,fixme+all,err+all'
export DISPLAY=:1.0
wine c:\\d2s\\d2gs.exe
Полагаем, что bnetd с сопутствующими сервисами запущен, стартуем скрипт.
Сообщений куча, не пугайтесь. Загружается долго, моя предполагает, что обработка базы данных реестра тормозит.
Об этом говорят сообщения, если запустить wine с отладкой сообщений в режиме trace.
Начинается все с...
~/.wine/drive_c/d2s#=> ./start.sh
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\d2gs.exe" -> "/root/.wine/dosdevices/c:/d2s/D2GS.exe" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\d2gs.exe" -> "/root/.wine/dosdevices/c:/d2s/D2GS.exe" required a case-insensitive search
warn:module:alloc_module disabling no-exec because of L"d2gs.exe"
warn:file:wine_nt_to_unix_file_name L"d2gs.exe.manifest" not found in /root/.wine/dosdevices/c:/d2s
warn:ntdll:NtCreateFile L"\\??\\C:\\d2s\\d2gs.exe.manifest" not found (c0000034)
warn:file:wine_nt_to_unix_file_name L"USER32.dll" not found in /root/.wine/dosdevices/c:/d2s
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\d2s\\USER32.dll" not found (c0000034)
warn:file:wine_nt_to_unix_file_name L"USER32.dll" not found in /root/.wine/dosdevices/z:/disk01/diablo2
warn:ntdll:NtQueryFullAttributesFile L"\\??\\Z:\\disk01\\diablo2\\USER32.dll" not found (c0000034)
warn:file:wine_nt_to_unix_file_name L"USER32.dll" not found in /root/.wine/dosdevices/c:/windows/system32
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\USER32.dll" not found (c0000034)
warn:file:wine_nt_to_unix_file_name L"USER32.dll" not found in /root/.wine/dosdevices/c:/windows/system
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system\\USER32.dll" not found (c0000034)
warn:file:wine_nt_to_unix_file_name L"USER32.dll" not found in /root/.wine/dosdevices/c:/windows
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\USER32.dll" not found (c0000034)
#
# минут 5 точно думает.
# машинка - 1Ghz/400Mb celeron
#
# запускается и начинает работать сообщениями...
#
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\d2s\\D2Server.ini" -> "/root/.wine/dosdevices/c:/d2s/d2server.ini" required a case-insensitive search
warn:file:wine_nt_to_unix_file_name L"D2GEVar.dat" not found in /root/.wine/dosdevices/c:/d2s
warn:ntdll:NtCreateFile L"\\??\\C:\\d2s\\D2GEVar.dat" not found (c0000034)
warn:file:CreateFileW Unable to create file L"D2GEVar.dat" (status c0000034)
warn:msvcrt:MSVCRT__sopen :failed-last error (2)
Мораль басни
После поднятия всех сервисов sockstat для них примерно такой
root wineserver 7090 59 tcp4 *:4000 *:*
root wineserver 7090 80 tcp4 172.16.13.37:50139 172.16.13.37:6114
root wineserver 7090 91 tcp4 172.16.13.37:55063 172.16.13.37:6113
root d2dbs 727 1 tcp4 172.16.13.37:6114 *:*
root d2cs 725 4 tcp4 172.16.13.37:6113 *:*
root d2cs 725 6 tcp4 172.16.13.37:6113 172.16.13.37:55063
root d2cs 725 8 tcp4 172.16.13.37:6113 172.16.23.35:2101
quake bnetd 723 6 tcp4 172.16.13.37:6112 *:*
quake bnetd 723 9 tcp4 *:6200 *:*
quake bnetd 723 10 tcp4 172.16.13.37:9876 *:*
quake bnetd 723 11 tcp4 172.16.13.37:6112 172.16.13.37:52381
quake bnetd 723 12 tcp4 172.16.13.37:6112 172.16.23.35:2059
quake bnetd 723 17 tcp4 172.16.13.37:6112 172.16.105.91:1044
Пытаемся создать игру в diablo 2:
Показывается заставка (монах пытается зайти в храм). Полминуты ничего не происходит, затем сообщение "failed to connect".
(прим.: в нормальных условиях вход в храм озаряется ярким светом и игра стартует).
Заходим telnetом на 127.0.0.1:8888, и видим
Connetion to D2CS (172.16.13.37): connected
Connetion to D2DBS(172.16.13.37): connected
Game Server Net Statistic: (rate is KBytes/second)
RecvPkts RecvBytes SendPkts SendBytes
D2CS 8 216 7 217
D2DBS 0 0 2 35
Коннект сервисов осуществлен, но почему то нет коммуникации между d2gs и d2dbs...
Обратите внимание на НУЛИ напротив D2DBS... непорядок!
В логах
d2ge.log
08/13 23:24:56.175 (*)D2Server1.11b: Version 1.11b patch build 27 by marsgod. 2007-07-05
08/13 23:24:56.184 (*)D2GSPreInit: Diablo2 Game Server Library 0x010A0304
08/13 23:24:56.184 (*)D2GSPreInit: D2GSLib Version: D2GSLib 1.11.0.0 Build On Feb 16 2007 21:13:10
08/13 23:24:56.184 (*)D2GSPreInit: Core Game Version: Diablo2 LOD v1.11b
08/13 23:24:56.201 (*)D2GSPreInit: Running on Windows 2000 Version 5.0 Service Pack 4 (Build 2195)
08/13 23:24:56.201 (*)D2GSPreInit: CPU Number: 1
08/13 23:24:56.201 (*)D2GSPreInit: CPU Infomation: GenuineIntel (Type: 0 Family: 6 Model: 8 Stepping: A Brand: 1)
08/13 23:24:56.213 (*)D2GSPreInit: CPU Speed: Approx. 1002 MHz
08/13 23:24:56.213 (*)D2GSPreInit: Physical Memory: 291/379 MB
08/13 23:24:56.213 (*)D2GSPreInit: Virtual Memory: 2047/2047 MB
08/13 23:24:56.213 (*)D2GSPreInit: PageFile: 582/670 MB
08/13 23:24:56.214 (*)D2GSPreInit: Computer Name: j4ckHOST
08/13 23:24:56.214 (*)D2GSPreInit: User Name: root
08/13 23:24:57.011 (*)D2GSPreInit: Maxinum Game Number is 202
08/13 23:24:57.012 (*)PatchFogPool: Pre-Allocate 204 Pools=0x01680000 (0x12F690 bytes)
08/13 23:24:57.033 (*)PatchModule: 39 of 39 Patches Successfully Applied
08/13 23:24:57.042 (*)ScriptLoad: 11 Patches Loaded From Script File d2gs.script
08/13 23:24:57.045 (*)PatchModule: 11 of 11 Patches Successfully Applied
08/13 23:24:57.055 (*)D2GSInit: Starting up Game Server,Initializing...
08/13 23:24:57.055 (*)D2GSInit: Server Name: Diablo II Game Server
08/13 23:24:57.601 (*)D2GSInit: MPQs Initialized
08/13 23:24:57.803 (*)D2GSInit: Language Initialized
08/13 23:24:57.804 (*)D2GSInit: Pre-Cache Enabled
08/13 23:25:10.841 (*)D2GSInit: Game Data tables Initialized
08/13 23:25:10.858 (*)D2GSInit: NT Specific Features Disabled
08/13 23:25:10.860 (*)D2GSInit: Network Listening Socket Initialized
08/13 23:25:10.861 (*)D2GSInit: Callback Function Table Set up
08/13 23:25:10.864 (*)D2GSStart: Game Server Initialize done,Entering Message Loop
08/13 23:25:11.026 (*)ConfigLoad: Loading config from file C:\d2s\D2Server.ini
08/13 23:25:11.088 (*)ConfigLoad: Loaded 348 item data from ItemConfig.dat
08/13 23:25:11.093 (*)ConfigLoad: WorldEvent item loaded succssfully
08/13 23:25:11.096 (*)ConfigLoad: WorldEvent is enabled
d2gs.log
08/13 22:02:17.320 D2GEThread: Server Thread 11 Created
08/13 22:02:33.406 D2GEThread: Game Server Thread Start Successfully
08/13 22:02:33.433 D2GSResetGameList: End all game in the Game List and in the GE
08/13 22:02:33.441 D2GSConnectToD2xS: Connected to D2DBS Successfully
08/13 22:02:33.442 D2GSSendClassToD2DBS: Send connection class packet to D2DBS
08/13 22:02:33.457 watchdog_init: CreateThread watchdog_thread, 19
08/13 22:02:33.460 main: Entering Main Server Loop
08/13 22:02:33.503 D2GSConnectToD2xS: Connected to D2CS Successfully
08/13 22:02:33.505 D2GSSendClassToD2CS: Send connection class packet to D2CS
08/13 22:02:33.507 D2GSNetRecvPacket: CS socket become writable
...
08/13 23:29:39.042 D2GSNetRecvPacket: CS socket become writable
08/13 23:29:39.043 D2GSNetRecvPacket: CS socket become writable
08/13 23:29:39.044 D2GSNetRecvPacket: CS socket become writable
08/13 23:29:39.045 D2GSNetRecvPacket: CS socket become writable
08/13 23:29:39.046 D2GSNetRecvPacket: CS socket become writable
# до бесконечности
08/13 23:29:39.046 D2GSNetRecvPacket: CS socket become writable
По-видимому, Что то не так с сокетами.
И при попытке зайти в игру создается файл
~/.wine/drive_c/d2s#=> 23:31 ttyp1cat ./D2-HACK070813.txt
---------------------------------------------------------------
j4ckHOST Realm startup at 2007-08-13 22:02:18.458
---------------------------------------------------------------
22:06:06.627 [HACKLIST] Couldn't hacklist client 1 (closed) from FILE:..\Source\D2Game\GAME\Game.cpp LINE:1004
Аля я крутой хаксор...
Позадавал вопросы на забугорных форумах, ирках - ответов - н0ль.
Может кто поможет советом? В чем может быть проблема...
@author: J4ck
@Comments: Shit happens
@email: j4ck at molod dot ru
https://forum.krinon.ru/index.php?/forum/3-engine-pro-web/