LINUX.ORG.RU
ФорумGames

winex+CStrike+Cheating-Death


0

0

Наш сервер требует Cheating-Death или выкибывает из игры, как обойти или как его запускать ??????? ответе на мыло тоже очень прощу tarasui@mail.ru

anonymous

Предполагается, что Half-Life находится в дириктории "/mnt/c/half-life"

В линукс должны быть установлены:
gcc
winex
devel-пакет для wine или winex

Запускаем инсталятор Cheating-Death при помощи winex и производим установку в дирикторию C:\Program Files\Cheating-Death\

$ winex cd-client-4_4_0-en.exe

Далее:

$ mkdir /tmp/cdlinux
$ cd /tmp/cdlinux

Здесь необходимо создать файл cdlinux.c, чей текст приведен ниже. После создания файла компилируем его:

$ gcc -fPIC -g -Wall -shared -ldl -I/usr/include/wine/windows -o libcdlinux.so cdlinux.c

Если компиляция пройдет успешно, то будет создан файл libcdlinux.so, который нужно скопировать в "/mnt/c/half-life"

$ cp libcdlinux.so "/mnt/c/half-life"

Все. CS надо запускать скриптом cs_linux.sh (Cheating-Death запускать НЕ надо, он будет подгружен автоматически)

--- cdlinux.c ---

#include<dlfcn.h>
#include<windows.h>

#define CD_LIB "C:\\Program Files\\Cheating-Death\\cd.dll"

char* (*p_GetCommandLineA)()=0;
int times=0;

char *GetCommandLineA() {
void *handle;
if(!p_GetCommandLineA) {
if((handle = dlopen("libkernel32.so", RTLD_LAZY))) {
p_GetCommandLineA=dlsym(handle, "GetCommandLineA");
}
}
times++;
if(times==6)
LoadLibraryA(CD_LIB);
return (*p_GetCommandLineA)();
}


--- cs_linux.sh ---
#!/bin/sh
# cs_linux.sh
# usage:
# cs_linux.sh [hl-params]

# path to winex
WINEX="/usr/bin/winex3"
# Half-Life root directory
HLROOT="/mnt/c/half-life"
# path to libcdlinux.so
LIBCDLINUX="${HLROOT}/libcdlinux.so"

export LD_PRELOAD="${LIBCDLINUX}"
(cd "$HLROOT"; $WINEX hl.exe -- hl.exe -game cstrike -console $@)

# EOF

Lucky ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.