В сети полно подобных руководств, но к сожалению они разбросаны по разнообразнейшим форумам и собирать их приходиться долго и по крупицам, поэтому основная цель данного гайда это соединить эти крупицы.
И так гайд состоит из трех частей.
1. Установка DirectX на wine (Без него в принципе работать будет, но тормоза будут ужасные)
2. Установка IE6 на wine (Родная эмуляция IE в wine крайне куцая)
3. Борьба с DNS(как бы глупо это не звучало)
1. Установка DirectX
Предположительно Wine у вас уже установлен.
1.1. Для создания папки с настройками, в первый раз, запускаем конфигуратор wine:
winecfg
1.2. Теперь ищем в интернете или, если у вас установлен на компе ХП, копируем из папки windows\system32\ файлы mscoree.dll и streamci.dll в папку ~/.wine/drive_c/windows/system32/
1.3. Удаляем wine'ские файлы d3d или переименовываем:
cd ~/.wine/driver_c/windows/system32/
rm d3d8.dll d3d9.dll ddraw.dll dsound.dll dsound.vxd quartz.dll dxdiagn.dll
1.4. Редактируем файл user.reg или проделываем это в конфигураторе(для каждой библиотеки выставляем "Сторонняя"):
gedit ~/.wine/user.reg
в конец файла вставляем:
[Software\\Wine\\DllOverrides] 1196330736
"d3d8"="native"
"d3d9"="native"
"d3dim"="native"
"d3dx8"="native"
"d3dxof"="native"
"dciman32"="native"
"ddrawex"="native"
"devenum"="native"
"dinput"="native"
"dinput8"="native"
"dmband"="native"
"dmcompos"="native"
"dmime"="native"
"dmloader"="native"
"dmscript"="native"
"dmstyle"="native"
"dmsynth"="native"
"dmusic"="native"
"dplay"="native"
"dplayx"="native"
"dpnaddr"="native"
"dpnet"="native"
"dpnhpast"="native"
"dswave"="native"
"dxdiagn"="native"
"mscoree"="native"
"quartz"="native"
"streamci"="native"
1.5. Распаковываем последнюю версию DirectX (скачать последнюю версию можно
wine directx_nov2007_redist.exe
1.6. Выбираем папку куда распакуются файлы, после распаковки переходим в эту папку и запускаем установку:
wine DXSETUP.EXE
1.7. Снова запускаем конфигуратор wine:
winecfg
1.7.1. Переходим на вкладку 'Библиотеки', выбираем из ниже приведенного списка названия библиотек, нажимаем редактировать и выбираем пункт 'Встроенная (Wine)'
d3d8, d3d9, ddrawex, dinput, dinput8
1.8. Запускаем диагностику DirectX:
wine dxdiag.exe
1.8.1. В окне диагностики переходим на вкладку 'Дисплей' и выполняем тест 'Проверка Direct3D'.
Если тесты проходят на ура, значит вы сделали все правильно.
2. Установка IE6
Тут я не стал мудрить, и просто установил IEs4Linux
Проблема только в том, что ставиться он в другую бутылку, но это тоже решается не сложно из этой бутылки вам нужны файлы:
~/.wine_ie6/driver_c/Program Files/system32/Internet Explorer/
iexplore.exe
~/.wine_ie6/driver_c/windows/system32/
mshtml.dll
shdoclc.dll
shdocvw.dll
shlwapi.dll
urlmon.dll
wininet.dll
Далее запускаем winecfg, переходим на закладку Библиотеки(Libraries ) и добавляем
следующее приложение и библиотеки:
iexplore.exe
mshtml
shdoclc
shdocvw
shlwapi
urlmon
wininet
mlang
И устанавливаем их в Сторонняя, встроенная (native, builtin.)
3. Борьба с DNS.
А теперь самое интересное. Если два предыдущих пункта относились к общим настройкам Рагнарок на Линукс, то следующие извращения предназначены для серверов где в rag(sak)*.exe встроена поддержка DNS. Да для админов, и windows пользователей это огромное благо, не надо обновлять клиент каждый раз когда поменяется IP сервера итд, итп, но для Linux пользователей Ragnarok это огромное зло.
Чтож попробуем это зло исправить.
Что нам для этого понадобиться.
wireshark или netstat
iptables с поддержкой dnat
И так в двух предыдущих пунктах мы запустили клиент, но залогиниться нам так и не удалось, так как мы постоянно видели подобную надпись "Failed to connect to server"
Причина данного сообщения кроется в том, что на самом деле клиент пытается приконектиться к IP совершенно не знакомого сервера, причем откуда он берет этот IP для меня осталось загадкой. Поэтому для начала нам надо узнать этот IP, на разных компах он может быть разным, у меня например стучался на 116.114.111.46.
3.1. Закрываем по возможности все программы которые ведут активный сетевой образ жизни и запускаем wireshark от рута(это важно) и стартуем слежение за сетевым интерфейсом.
3.2. Запускаем Рагнарок. Пытаемся залогиниться. Останаливаем слежение за интерфейсом в wireshark.
3.3. Теперь наша задача разобраться в логах.
Фильтруем по tcp другие протоколы нас не интересуют.
Ищем обращения на куда либо по порту 7900
В поле Destination будет IP куда пытаеться идти Рагнарок.
На данный момент у сервера реальное IP *
Естественно эти IP будут разными, если это не так то тогда проблема с соединением не в этом и дальше можно не читать
3.4. И так, теперь нам остаётся только перенаправить глючный IP на тот который нам надо, это легко сделать командой:
iptables -t nat -A OUTPUT -d $WRONG_ADDRESS -j DNAT --to $REAL_ADDRESS
Где $WRONG_ADDRESS в моем случае 116.114.111.46, а $REAL_ADDRESS это ***********
Собственное это все.
Приятной игры.
Добавлено 16.11.09
Решение с русским языком:
Оно абсолютно совпадает с решением для семерки(и откуда только такие совпадения), то есть вам необходимо скачать эту
Кстати StandartRO_Patcher.exe патчить не обязательно хоть это и написано в редмишке, он все равно выполняет только функции скачки и установки патчей, а для игры запускает StandartRo.exe
Добавлено 30.11.09
На данный момент IP сервера 188.138.32.112