LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4597|回复: 6

在Debian下用Wine运行Cheating-Death客户端连接CS服务器

[复制链接]
发表于 2003-9-9 02:52:44 | 显示全部楼层 |阅读模式
纯属技术文章,不参与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文件,内容如下:

  1. #include<dlfcn.h>
  2. char* (*p_GetCommandLineA)()=0;
  3. int times=0;
  4. char *GetCommandLineA() {
  5.         if(!p_GetCommandLineA)
  6.                 p_GetCommandLineA=dlsym((void*)-1,"GetCommandLineA");
  7.         times++;
  8.         if(times==6)
  9.                 LoadLibraryA("Z:\\usr\\local\\Counter-Strike\\Cheating-Death\\cd.dll");
  10.         return (*p_GetCommandLineA)();
  11. }
复制代码

要自行修改的是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脚本,内容如下:

  1. #!/bin/sh
  2. export LD_PRELOAD="/lib/libdl.so.2 /usr/local/lib/wine/kernel32.dll.so \
  3. /usr/local/Counter-Strike/Cheating-Death/cdlinux.so"
  4. export LD_LIBRARY_PATH="/usr/locale/lib/wine"
  5. cd /usr/local/Counter-Strike
  6. wine cstrike.exe -- -console
复制代码


请根据你的系统中wine的安装目录自行修改这个脚本,我是把cdlinux.so复制到了我的C-D安装目录中。把这个脚本放到/usr/local/bin或类似目录中并加上可执行属性,以后就可以直接执行cdlinux.sh来玩启动Cheating-Death和玩CS了,不需要单独执行cdeath.exe。玩的效果基本上与Windows下持平,FPS要低一些,但还可以接受。
发表于 2003-9-9 08:55:09 | 显示全部楼层

回复: HOWTO:在Debian下用Wine运行Cheating-Death客户端连接CS服务器

好 经典
我在win2k下的fps是30
如果在linux下
我不被郁闷死才怪呢
呵呵
发表于 2003-9-9 17:32:21 | 显示全部楼层
顶一下!有成功的说~~
发表于 2003-9-10 09:01:38 | 显示全部楼层
支持,debian下可以玩cs吗?
发表于 2003-9-10 09:09:57 | 显示全部楼层
当然能,不过在我本来就很低端的显卡上fps就更没法忍受了。另外鼠标也调不好。
能玩cs和能玩好cs区别还是很大的
发表于 2003-9-10 11:02:58 | 显示全部楼层
可以用。就是太卡了。
 楼主| 发表于 2003-9-10 11:23:36 | 显示全部楼层
我的CPU是XP 1800+,256M DDR内存,显卡是MSI MX400 32M,鼠标是罗技MX300,玩起来感觉还可以,FPS确实低一些,尤其在战况激烈的时候,鼠标的速度跟win下也不太一样,不过稍微适应一下就好了。战绩也不差,不打比赛我看应该都差不多,不过硬件比我这个再差可就不好弄了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表