(转,感谢原作者!)既然选择了Linux,有何必在乎这些——Linux wine国服LOL英雄联盟,完美运行!!

时间:2024-02-29 14:37:47

Linux下玩国服LOL,国服哦。
网络上随处都可以搜到wine美服LOL的教程,但腾讯运营的国服客户端跟美服原版相差比较大,按照美服的方式不能搞起国服LOL,由于宿舍文化,这几天我专注于wine一个国服LOL,对照winehq网站上的LOL相关的bug列表和美服的配置方法,试了各种patch,最后得到了满意的结果。
大家来看!!

OS: Slackware 14.0 
Arch: x86
CPU: Intel(R) Core(TM)2 Duo CPU T5870 @2.00GHz
VideoCard: Nvidia GForce G105M
Memory: 4G

需要
打过补丁的wine、LOL国服完整安装包、winetricks、反TP补丁

我使用的wine版本是1.5.25(目前来说,您使用其他版本的wine也一样),这里需要加上补丁重新编译,补丁主要解决以下问题:
1、选择服务器后登陆时崩溃;
http://bugs.winehq.org/attachment.cgi?i ... format=raw
2、游戏中点击商店崩溃。
http://uz.sns.it/~ranma42/iLoL/0001-HAC ... k-si.patch

这些补丁都不是给1.5.25版本的wine写的,要修改或新增的代码行数不一样,就不能直接应用这些patch,我是照着patch一个一个找对应代码文件改的。下面详细讲一下操作过程。

一、给wine打补丁,并编译
首先咱们编译wine,(如果您觉得编译太麻烦,可以直接用我编译好的wine,看帖子最底下,不过,自己编译的应该还是比较适合自己的系统)
先下载wine的源码,解压出来

代码: 全选
  1. tar xvf wine-1.5.25.tar.bz2
 


然后对照补丁修改一下代码,修改完后咱们来编译

代码: 全选
  1. cd wine-1.5.25
  2. ./configure
 


为避免影响系统安装的wine,可以指定新的prefix

代码: 全选
  1. ./configure --prefix=/opt/lol-wine
  2. make depend
  3. make
  4. sudo make install
 



二、配置wine环境
接着,到http://winetricks.org/winetricks 下载最新的winetricks,当然,发行版有提供也行啦,只不过SlackBuild.org上提供的比较老,下载一些DLL时会有404错误。

配置wine,这里我是定义另一个WINEPREFIX,以跟本机上原来的wine配置分开,
我们先执行

代码: 全选
  1. export WINEVERPATH=/opt/lol-wine
  2. export PATH=$WINEVERPATH/bin:$PATH
  3. export WINESERVER="$WINEVERPATH/bin/wineserver"
  4. export WINELOADER="$WINEVERPATH/bin/wine"
  5. export WINEDLLPATH="WINEVERPATH/lib/wine/fakedlls"
  6. export LD_LIBRARY_PATH="$WINEVERPATH/lib:$LD_LIBRARY_PATH"
 



接着再来

代码: 全选
  1. WINEPREFIX=~/LOL/.wine WINEARCH=win32 $WINEVERPATH/bin/winecfg
 

# WINEARCH=win32是设定wine为32位的,使用32位的Windows软件,这在64位Linux系统是必须的,然后设定Windows版本为xp。

代码: 全选
  1. WINEPREFIX=~/LOL/.wine winetricks vcrun2005 corefonts d3dx9 wininet dotnet20 dotnet35 ie6 win7 adobeair glsl-disable mfc42 physx
 

# 用winetricks安装一些Windows组件,其中physx是Nvidia显卡才要的,如果你的显卡不是Nvidia的,请删去;注意,在安装.Net framework 3.5的时候,进度条可能会在满格时卡住,没关系,kill掉wine和winetricks的进程后重新执行此命令就行了。

然后,我们再执行一下

代码: 全选
  1. WINEPREFIX=~/LOL/.wine WINEARCH=win32 $WINEVERPATH/bin/winecfg
 

,确保此时Windows版本是Windows 7。

三、安装LOL
好,接下来安装LOL,大家自行到官网去下载安装包,我用的是从17173上下的完整安装包:

代码: 全选
  1. WINEPREFIX=~/LOL/.wine $WINEVERPATH/bin/wine 17173_LOL_V3.0.7.9_FULL.exe
 


注意,在开始安装的时候,可能会出现“不能打开要写入的文件”的错误,只要将路径改改就好了,我自己测试是改成z:盘的路径。


四、应用反TP补丁(重要!)
安装完成以后,找到游戏目录下的Game/League of Legends.exe,备份好后用反TP补丁替换,反TP补丁主要是解决选好英雄后进入游戏时崩溃,反TP补丁见
http://zb.qn20.com/NewsView.aspx?NewsID=6
注意,每次更新LOL后都要检查一下League of Legends.exe文件有没有变化,如果没变,咱就继续L吧,如果有,去这个网站看一下反TP补丁有没有更新!!

五、运行游戏
运行游戏时,切换到游戏目录下的TCLS/目录,执行

代码: 全选
  1. WINEPREFIX=~/LOL/.wine $WINEVERPATH/bin/wine Client.exe
 


不过我的wine在安装好LOL后会在桌面生成图标,直接运行就可以了。
如果你的wine是安装到别的目录,比如/opt/lol-wine,那么可以建立一个脚本

代码: 全选
  1. #!/bin/bash
  2. export WINEVERPATH=/opt/lol-wine
  3. export PATH=$WINEVERPATH/bin:$PATH
  4. export WINESERVER="$WINEVERPATH/bin/wineserver"
  5. export WINELOADER="$WINEVERPATH/bin/wine"
  6. export WINEDLLPATH="WINEVERPATH/lib/wine/fakedlls"
  7. export LD_LIBRARY_PATH="$WINEVERPATH/lib:$LD_LIBRARY_PATH"
  8. export WINEARCH=win32
  9. export WINEPREFIX=~/LOL/.wine
  10. "$WINEVERPATH/bin/wine" "$@" /media/data/Documents/LOL/英雄联盟/TCLS/Client.exe
 


保存为lol.sh,然后运行这个脚本。

好,接下来就好好享受LOL之旅吧!!

深度截图20130320131126.png

 

深度截图20130320131249.png

 

深度截图20130320131336.png

 

深度截图20130320131355.png

 

深度截图20130320131423.png

 

深度截图20130320131636.png



2013年4月1日:
有朋友反映说编译麻烦,我这里将我编译好的包发上来,分32位和64位,是分别在Fedora 18 x86和Gentoo amd64编译的,大家试着用一下吧,如果有问题,再发帖讨论。

lol-wine_32bit.tar.gz
lol-wine_64bit.tar.gz

如果您希望跟帖子里说的配置一样,根据自己的系统下相应的压缩包,解压到/opt/,

代码: 全选
  1. sudo tar xvf lol-wine_32bit.tar.gz -/opt/
 

or

代码: 全选
  1. sudo tar xvf lol-wine_64bit.tar.gz -/opt/
 


当然您也可以将/opt/另选为自己喜欢的目录。
接下来,您就可以跳过上面的“第一步”,直接从“第二步、配置wine环境”开始了 :D

2013年4月2日:
如果您使用的是Intel的核显,您需要安装libtxc_dxtn这个包,它在不同发行版的命名有些不同,在Ubuntu/Deepin应该是libtxc-dxtn-s2tc0。我用过的发行版比较少,大家可以先搜索一下这个包,用相应的命令安装。

2013年4月7日:
提高游戏fps的技巧(转自LOL论坛):
1、更改注册表

代码: 全选
  1. WINEPREFIX=~/LOL/.wine regedit
 


打开注册表编辑器,找到键
HKEY_CURRENT_USER>Software>Wine>Direct3D
没有的话就新建一个,然后新建几个"字符串值",DirectDrawRenderer、Multisampling、OffscreenRenderingMode、RenderTargetLockMode、UseGLSL,设定它们的值分别是gdi、disabled、fbo、disabled、disabled;根据自己的显卡情况,还可建一个“字符串值”VideoMemorySize,将它的值设为自己显存大小,像我就设为512

2、选完英雄进入游戏后,打开终端,用top找到League of Legends.exe这个进程的PID,假设为11732,然后,用taskset命令将它设为只用一个cpu核

代码: 全选
  1. taskset -pc 1 11732
 


这里指定它只用编号为1的cpu核心。