|
纯属技术文章,不参与Linux下该不该玩游戏的讨论。
玩CS的都知道现在Cheating-Death是CS服务器上最流行的反作弊插件了,如果用Wine玩CS想连上服务器的话,没有C-D十有八九是不行的。这样用Wine运行Cheating-Death就非常必要了。根据C-D的FAQ,目前C-D只对Wine有一定的支持,用WineX不行。直接用wine运行C-D也是不行的,原理不说了。但是这个问题可以解决,基本步骤如下。
1.安装Wine
有一个非常好的Howto在这里
http://lhl.linuxgames.com/howto/half-life-HOWTO-0.5.html
简单说来,先要把显卡驱动搞定,这样才能玩3D游戏。具体可以见上面的链接。然后在Debian下,如果你安装了系统自带的wine先删除它,
apt-get remove libwine wine
再装上这个包
apt-get install xlibmesa-gl-dev
因为其中有一个glext.h是必需的(我没有安装xlibmesa-glu-dev,这个也许需要?)。
另外可能要用root权限
rm /usr/lib/libGL.a
wine可能会报告这个东东妨碍wine的编译中opengl的支持,你可以先不做这一步,如果后面./configure的时候wine提示了再做也不迟。
然后下载一份Wine的源码,从我测试的情况来看,目前的最新源码包20030813编译后玩CS似乎有问题,用20030709没有问题。将源码包解压,进入解压后的目录,运行
./configure --enable-opengl
如果成功,查看一下include/config.h中有没有
#define HAVE_OPENGL 1
这一行,如果这一行被注释掉了,说明你的opengl支持有问题,按上面的Howto来解决之。如果有,就可以进行编译了,我通常喜欢用tools/wineinstall来进行安装,这样比较省事,嘿嘿。总之,安装wine有任何问题,请看上面的那个链接。
2. 配置和使用Wine来玩CS中的常见问题
~/.wine/config可以进行一些修改,具体也就是路径和字体。路径的配置请根据自己的系统的情况进行,很简单,不细说了,注意最后一定要有指向/的Drive,新一点的wine的config中默认是Z盘。字体重点改[FontDirs]这一节,这一节是用来配置TrueType字体的,本来是被注释掉的,可改成类似
"dir1" ="/usr/share/fonts/truetype"
来指向之类你拥有的中文TrueType字体目录,这样用汉化版的CS的时候才能看见汉字。进入你的cs目录,用
wine cstrike.exe -- -console
运行CS,如果出现类似"Counter-Strike requires 16bit color"之类的警告,则在~/.wine/config中找到[Version]这一节,去掉"Windows" = "win98"之前的;号注释。
3. 运行Cheating-Death
这一方法的基本内容来自http://www.unitedadmins.com的论坛,我用最新的C-D 4.4.0测试通过。
我的系统基本情况是CS装在/usr/local/Counter-Strike目录,C-D装在/usr/local/Counter-Strike/Cheating-Death目录,以下内容根据你的系统情况需要做出修改。
首先创建一个cdlinux.c文件,内容如下:
- #include<dlfcn.h>
- char* (*p_GetCommandLineA)()=0;
- int times=0;
- char *GetCommandLineA() {
- if(!p_GetCommandLineA)
- p_GetCommandLineA=dlsym((void*)-1,"GetCommandLineA");
- times++;
- if(times==6)
- LoadLibraryA("Z:\\usr\\local\\Counter-Strike\\Cheating-Death\\cd.dll");
- return (*p_GetCommandLineA)();
- }
复制代码
要自行修改的是LoadLibraryA("Z:\\usr\\local\\Counter-Strike\\Cheating-Death\\cd.dll");这一行,指向你的Cheating-Death安装目录中的cd.dll文件,只能用Windows的路径表示方法,用\\隔开目录,此路径应当包含在wine的config中,像我这样用config中的根目录Z来表示是最保险了。
保存后执行
gcc --share cdlinux.c -o cdlinux.so
得到cdlinux.so这个链接库。
再创建一个cdlinux.sh脚本,内容如下:
- #!/bin/sh
- export LD_PRELOAD="/lib/libdl.so.2 /usr/local/lib/wine/kernel32.dll.so \
- /usr/local/Counter-Strike/Cheating-Death/cdlinux.so"
- export LD_LIBRARY_PATH="/usr/locale/lib/wine"
- cd /usr/local/Counter-Strike
- wine cstrike.exe -- -console
复制代码
请根据你的系统中wine的安装目录自行修改这个脚本,我是把cdlinux.so复制到了我的C-D安装目录中。把这个脚本放到/usr/local/bin或类似目录中并加上可执行属性,以后就可以直接执行cdlinux.sh来玩启动Cheating-Death和玩CS了,不需要单独执行cdeath.exe。玩的效果基本上与Windows下持平,FPS要低一些,但还可以接受。 |
|