O Counter Strike 1.6 dispensa apresentações, então: estão dispensadas.
Todo mundo sabe que jogo é esse... e se não sabe deveria saber!
A instalação aqui foi testada e aprovada no Debian 13, mas nada impede que não possa ser realizada a contento em outras distribuições, bastando adaptar os comandos, pois o código fonte do CS1.6 serve em qualquer Linux.
Na seção ESTUDO DE CASOS tem algumas coisas para fazer em caso de erros, conexão bloqueada, etc.
Na seção SCRIPTS tem alguns scripts úteis.
O procedimento aqui é puramente didático porque para jogar CS online gratuito basta entrar no link:
https://play-cs.com/pt/servers
escolher um servidor com o "map" desejado e conectar.
Contudo, para quem quer ter o CS1.6 instalado e personalizado no Linux e por uma questão de aprendizado, leia todo o artigo antes de sair executando comandos.
Parece muita coisa para fazer porque está bem explicado, mas é tranqüilo e rápido!
VÍDEO
Vídeo onde você pode me ver jogando e falhando miseravelmente nas missões:
https://drive.google.com/file/d/1lZat4icP9PeSDy14y927XDMi3BAhJ3t6/view?usp=sharing
Sem mais delongas...
Fire in the hole!
Need backup!Sector clear!
The bomb has been planted!
Go go go!
DOWNLOAD
Abra o terminal.
$ sudo apt update
$ sudo apt install xz-utils dos2unix wget
Qbittorrent é opcional, mas instale caso baixe o .tar da Free Linux PCGames:
$ sudo apt install qbittorrent
Quando tiver de usar "sudo" indicará no comando.
Para o download tem duas opções.
1)
https://freelinuxpcgames.com/counter-strike/
Clique no link acima e mais abaixo na página encontre o link:
Half-Life/Blue Shift/Opposing Force/Counter-Strike 1.6 [x86] [Multi] [Native]
Caso, ao clicar no link, abrir uma janela de propaganda, feche-a e clique novamente no link que o download abrirá.
2)
https://drive.google.com/file/d/1qIWFrOLrUl-GRVX05fcXo35gRGqdUydU/view?usp=sharing
Caso aparecer a mensagem:
"O Google Drive não pode fazer a verificação de vírus neste arquivo.
O arquivo HLCS_Linux.tar.xz (757M) é muito grande para a verificação de vírus do Google. Você ainda quer fazer o download?"
Ignore e clique em "Fazer o download mesmo assim".
Disponibilizei no Google Drive porque, algumas vezes, o download do torrent do Free Linux PCGames falha ou demora muito.
Obs.: disponibilizei, também, no Google Drive, a pasta "cstrike" com "models, "maps, etc, para quem não quiser esperar baixar do servidor, são 387,2 MiB. Basta fazer o download e copiar a pasta para /opt/cstrike/HLCS/game, substituindo a pasta de mesmo nome que ali está:
https://drive.google.com/drive/folders/1X4nTQ_Nd5mG9KQg4x_tm2IEjZmHZGOnh?usp=sharing
INSTALANDO
Execute:
$ sudo apt install locales
$ sudo dpkg-reconfigure locales
Terminará:
Generating locales (this might take a while)...
en_US.UTF-8... done
pt_BR.UTF-8... done
Generation complete.
Habilitando, instalando dependências e bibliotecas de 32 bits:
$ sudo apt update
libgl1:i386 libglu1-mesa:i386 libx11-6:i386 libxext6:i386 \
libxrandr2:i386 libxcursor1:i386 libxinerama1:i386 \
libasound2:i386 libopenal1:i386 libsdl1.2debian:i386 zlib1g:i386 \
libfontconfig1:i386 libxft2:i386 libgtk2.0-0:i386 libnss3:i386 libnspr4:i386
$ sudo apt install libnss-myhostname:i386 libnm0:i386 libnss3:i386 libnss-mdns:i386 libpulse0:i386
Criando uma pasta para instalação (instalei em /opt):
$ sudo mkdir cstrike
$ cd cstrike
Copie o arquivo de onde você o baixou, no caso, da pasta Downloads, adapte se o caminho for diferente:
$ sudo cp ~/Downloads/HLCS_Linux.tar.xz /opt/cstrike/
Verifique:
$ ls
HLCS_Linux.tar.xz
Descompacte:
$ ls
HLCS HLCS_Linux.tar.xz
Garanta que seu usuário é o dono:
$ sudo chown -R $USER:$USER /opt/cstrike/HLCS
Agora faremos cópia e executaremos o jogo pela primeira vez para criar automaticamente o diretório /opt/cstrike/HLCS/game/platform/config:
$ ls
bshift.sh cstrike.sh game hl.sh oforce.sh steam-runtime
$ vim cstrike.sh (uso o vim, use o teu editor de texto)
Apague o conteúdo e coloque dentro:
#!/bin/bash
export SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
export DIR="$(dirname "$SCRIPT")"
cd "$DIR/game"
# Para executar em tela cheia basta tirar -window -w 1024 -h 768
"$DIR/steam-runtime/run.sh" ./hl.sh -game cstrike -window -w 1024 -h 768
Salve e saia.
Somente acrescentamos os parâmetros "-window -w 1024 -h 768" para definir a tela do jogo em 1024/768, depois, caso queira, basta retirar os parâmetros que o jogo abrirá em tela cheia.
Garantindo que seja um arquivo unix/linux/ascii:
$ dos2unix cstrike.sh
dos2unix: convertendo o arquivo cstrike.sh para formato Unix...
Garanta a permissão de execução:
$ chmod +x cstrike.sh
Testando:
$ ./cstrike.sh
Teste clicando em New Game > de dust2 > Start > OK escolha as opções, por exemplo, 1 TERRORIST FORCES > 1 PHOENIX CONNEXION.
Entrarás no jogo, mas ainda não estás conectado em um servidor para jogar.
Neste momento tu podes atirar (botão esquerdo), movimentar-se (setas de direção), apreciar o cenário, etc, mas nada além disso.
Saia pressionando a tecla Esc depois escolha Quit > Quit game.
Verifique se a pasta foi criada automaticamente com os arquivos:
$ ls /opt/cstrike/HLCS/game/platform/config/
InGameDialogConfig.vdf ServerBrowser.vdf
Criando link para a pasta de downloads:
$ ln -s /opt/cstrike/HLCS/game/cstrike_downloads /opt/cstrike/HLCS/game/cstrike
CONECTANDO
Entre no jogo novamente:
Faça o caminho novamente: New Game > de dust2 > Start > OK. Escolha as opções, por exemplo, 1 TERRORIST FORCES > 1 PHOENIX CONNEXION.
Tentaremos conectar em um servidor.
Dentro do jogo digite a tecla aspas_duplas/apóstrofo (",'): abrirá o console.
Lembrando que, para abrir o console, deve-se sempre abrir um New Game > etc > etc e entrar no jogo para depois conectar em um servidor.
Comandos:
cl_allowupload 1
connect 91.211.247.221:27015
Obs.: depois veremos como tornar permanente os comandos cl_allowdownload 1 e cl_allowupload 1.
Caso você tiver sorte e completar a conexão de primeira, começará a baixar os arquivos e depois você entrará no CS1.6 online com outros jogadores de várias partes do mundo, agora é com você!
Caso aparecer uma mensagem: "SERVER IS FULL", parábens, você também é uma pessoa de sorte, pois realizou a conexão "de prima", porém, o servidor está cheio, aguarde e tente de novo mais tarde ou tente outro servidor.
Em alguns servidores pode demorar horas para baixar os arquivos da primeira vez (depende da conexão), depois é mais rápido em qualquer servidor, pois os arquivos, muitas vezes, são os mesmos.
Caso mudar de computador pode copiar a pasta /opt/cstrike/HLCS/game/cstrike.
Segue link para um site com uma porção de servidores espalhados pelo mundo (inclusive no Brasil), os quais você pode testar antes de realizar outros procedimentos.
Link geral:
https://www.gametracker.com/search/cs/
https://www.gametracker.com/search/cs/BR/
Caso terminar com "Disconnected Failed to contact game server", clique em "Close" para fechar a janela.
Caso terminar com "Cannot continue without model models/player/ugc_terror_vip/ugc_terror_vip.mdl, disconnecting.", feche a janela.
Você terá de ver o porquê não conectou.
Desligue o Firewall (se tiver), o Selinux, etc, para testar.
Sugestão de servidores (prontos para copiar e colar no console).
O formato é: "connect" seguido do IP e, depois dos dois pontos, a porta na qual o servidor atua:
connect 93.114.82.202:27015 (Brasil ZMX League CS)
connect 5.199.130.133:27015 (Romênia)
connect 155.133.248.50:27015
connect 177.54.152.56:27015
connect 131.196.198.52:27052
connect 216.52.148.19:27011 (topfrag chicago)
connect 66.165.238.178:27018 (so-cal los angeles)
connect 45.32.174.155:27015 (dreampoint miami 1)
connect 172.96.172.86:27015 (dreampoint 2)
connect 172.96.172.84:27015 (dreampoint 3)
connect 172.96.172.84:27016 (dreampoint 4)
Caso, mesmo assim, não conseguir conexão de jeito nenhum, sugiro alguns procedimentos:
desabilite o firewall (se tiver), desabilite o Selinux e quaisquer módulos de segurança que, porventura, tenha no computador, somente para testar.
Caso tiver roteamento na sua máquina, desabilite para testar e identificar quem está bloqueando a conexão.
Além disso, tem provedores que utilizam CGNAT (Carrier Grade NAT) que é uma técnica usada por provedores de internet para compartilhar um único endereço IPv4 público entre vários clientes, contornando o esgotamento global de endereços IPv4. Vários usuários compartilham o mesmo IP público, mas cada um recebe um conjunto de portas lógicas diferentes e isso ocasiona problemas de NAT fechado em jogos, dificuldades no acesso remoto a câmeras/servidores, ou serviços de P2P.
As soluções para isso são:
1- Entrar em contato com o provedor para solicitar um IP público (cobrado geralmente);
2- Utilizar IPv6, que não precisa de NAT.
Contudo, nenhuma dessas é viável para muitos usuários de internet, mas vamos contornar isso na seção CONFIGURANDO.
OPCIONAL
TCPDUMP
Esta seção é OPCIONAL, caso queira, pode pular para a seção CONFIGURANDO:
Veja a placa de rede:
$ ip addr
Execute o jogo e com ele rodando abra outra janela do terminal e rode (substitua o nome da placa de rede enp3s0 pela sua):
$ sudo tcpdump -i enp3s0 -n udp port port (caso não tiver instale com sudo apt install tcpdump)
Exemplo:
$ sudo tcpdump -i enp3s0 -n udp port 27015
Caso der "Disconnected Failed to contact game server" e a saída do tcpdump der algo parecido com:
[sudo] senha para usuario:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp8s0f0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:00:02.357829 IP 172.16.5.99.27005 > 91.211.247.221:27015: UDP, length 23
10:00:08.360962 IP 172.16.5.99.27005 > 91.211.247.221:27015: UDP, length 23
10:00:14.360969 IP 172.16.5.99.27005 > 91.211.247.221:27015: UDP, length 23
10:00:20.377670 IP 172.16.5.99.27005 > 91.211.247.221:27015: UDP, length 23
Vemos que os pacotes estão tentando sair, mas tem algo bloqueando a volta, provavelmente o firewall, um proxy, o CGNAT, etc, pois não tem nenhum registro.
172.16.5.99.27005 < 91.211.247.221:27015: UDP, length 23
ou
91.211.247.221:27015 > 172.16.5.99.27005:num_porta: UDP, length 23.
No comando "sudo tcpdump -i enp3s0 -n udp port 27015" tenha o cuidado de colocar a sua placa de rede e coloque a porta correspondente ao connect do jogo, por exemplo, connect xxx.xxx.xxx.xxx:27052, connect xxx.xxx.xxx.xxx:27015, etc.
É de bom tom, de vez em quando, limpar o rastreador de conexões antes de abrir o jogo e executar o tcpdump:
$ sudo conntrack -F (se o comando não existir, instale com sudo apt install conntrack).
CONFIGURANDO
Caso tenha conseguido a conexão de primeira, as configurações que seguem são opcionais, contudo, aconselho a fazer até a seção "CloudflareWARP", exclusive - pois se você conseguiu a conexão "de prima" não precisa do CloudflareWARP -, mas depois configure o arquivo userconfig.cfg com as suas configurações pessoais (se souber o que está fazendo).
Vá em /opt/cstrike/HLCS/game/cstrike (ou o caminho que você escolheu para instalar) e altere o arquivo ServerBrowser.vdf:
$ cp ServerBrowser.vdf ServerBrowser.vdf.bkp
$ vim ServerBrowser.vdf
No início, substitua "internet" por "favorites", ficando assim:
Salve e saia.
Retirando caracteres nulos e convertendo:
$ dos2unix ServerBrowser.vdf
Crie o arquivo:
$ vim MasterServers.vdf
Coloque dentro:
Salve e saia.
Altere a ordem do servidores masters como quiser.
Caso, futuramente, queira acrescentar/tirar servidores, edite o arquivo MasterServers.vdf e acrescente/tire os servidores desejados.
$ dos2unix MasterServers.vdf
Removendo todos os atributos ocultos do sistema e setando permissões:
$ sudo chattr -i /opt/cstrike/HLCS/game/platform/config/ServerBrowser.vdf
$ sudo chattr -i /opt/cstrike/HLCS/game/platform/config/MasterServers.vdf
$ sudo chown -R $USER:$USER /opt/cstrike/HLCS/
$ chmod 644 /opt/cstrike/HLCS/game/platform/config/MasterServers.vdf
$ chmod 644 /opt/cstrike/HLCS/game/platform/config/ServerBrowser.vdf
CloudflareWARP
Agora vamos instalar o Cloudflare-Warp que é um serviço gratuito de Domain Name System (DNS) da empresa americana Cloudflare em parceria com a APNIC. O serviço funciona como um servidor de nomes recursivo fornecendo resolução de nomes de domínio para qualquer host na Internet.
Serve para vários jogos, downloads bloqueados pelo provedor, etc. Na seção SCRIPTS tem um script pronto que desliga o WARP.
Veremos o passo a passo para instalar no Debian.
Para outras distribuições veja o link:
https://pkg.cloudflareclient.com/
Adicione a chave e o repositório.
Adicionando cloudflare gpg key:
$ curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
Adicionando o repo no repositório:
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
Instalando:
Registre o cliente (apenas na primeira vez):
$ warp-cli registration new
Accept Terms of Service and Privacy Policy? [y/N] y
Success
Conecte:
$ warp-cli connect
Success
Verificando o status:
$ warp-cli status
Status update: Connected
Network: healthy
$ ip addr
Na saída terá algo assim, podendo mudar a numeração dependendo de quantas placas de rede o vivente tem:
4: CloudflareWARP: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc mq state UNKNOWN group default qlen 500
link/none
inet 172.16.0.2/32 scope global CloudflareWARP
valid_lft forever preferred_lft forever
inet6 2608:4710:111:879c:4b44:ebb:317a:cacb/128 scope global
valid_lft forever preferred_lft forever
inet6 fd80::ca44:f9cc:aec0:681b/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
Geralmente o WARP cria uma interface chamada CloudflareWARP.
Você pode ver o tráfego passando por ela com:
$ sudo tcpdump -i CloudflareWARP -n udp
Se a interface não aparecer é porque algumas distribuições Linux precisam que o módulo "tun" do kernel esteja carregado.
$ sudo systemctl restart warp-svc
$ warp-cli connect
Para tornar permanente:
$ sudo vim /etc/modules-load.d/modules.conf
Acrescente no final o nome do módulo: tun.
Salve e saia.
Reinicie o gerenciador de internet e tente de novo "ip addr".
Começando:
$ warp-cli mode warp
$ warp-cli connect
Criando o diretório para armazenar os Favoritos e Servidores Masters:
$ cp /opt/cstrike/HLCS/game/platform/config/ServerBrowser.vdf ~/.hlcs/platform/config/
$ cp /opt/cstrike/HLCS/game/platform/config/MasterServers.vdf ~/.hlcs/platform/config/
Faz symlink de /opt/cstrike/HLCS/game/platform/config e garante persistência:
$ ln -s ~/.hlcs/platform/config /opt/cstrike/HLCS/game/platform/config
Criando o script cstrike_com.sh
$ vim cstrike_com.sh
Coloque dentro:
#!/bin/bash
# Script que roda e conecta o CS1.6 com WARP
# Otimiza o MTU da interface
sudo ip link set dev CloudflareWARP mtu 1280
# Limpa a rota anterior e fixa com o IP CloudflareWARP
sudo ip route add 131.196.198.52 dev CloudflareWARP 2>/dev/null
export SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
export DIR="$(dirname "$SCRIPT")"
cd "$DIR/game"
# Executa o jogo usando o tunel
# -window: abre em modo janela
# -w 1024 -h 768: define o tamanho da janela
# -nomousegrab: evita que o mouse fique preso
#./hl_linux -game cstrike -nomousegrab -ip 0.0.0.0 +clientport 27005
# Pode colocar -ip 0.0.0.0 no lugar de -ip 172.16.0.2
"$DIR/steam-runtime/run.sh" ./hl_linux -game cstrike -window -w 1024 -h 768 -nomousegrab -nofbo -nomsaa -gl_clear 1 -windowed -gl -ip 0.0.0.0 +clientport 27005
Salve e saia.
Execute o script cstrike_com.sh (deve ser executado como usuário):
$ ./cstrike_com.sh
Sempre faça o procedimento de New Game > Escolher um map > Start > etc, até entrar no jogo para depois conectar no servidor.
Abra o console digitando a tecla aspas_duplas/apóstrofo ("').
Em outro terminal rode, caso quiser:
$ sudo tcpdump -i CloudflareWARP -n udp
Tente uma conexão no console do jogo, por exemplo:
Agora é contigo!!!
Caso der "Server is full" vá tentando outro servidor.
Em alguns servidores pode demorar horas para baixar os arquivos da primeira vez (depende da conexão), depois é mais rápido em qualquer servidor, pois os arquivos, muitas vezes, são os mesmos.
Caso mudar de computador pode copiar a pasta /opt/cstrike/HLCS/game/cstrike.
10:59:20.103549 IP 162.159.200.123.123 > 172.16.1.22.52574: NTPv4, Server, length 48
10:59:23.018999 IP 172.16.1.22.27005 > 93.114.82.202:27015: UDP, length 23
10:59:23.179207 IP 91.211.247.221:27015 > 172.16.1.22.27005: UDP, length 32
10:59:23.202248 IP 172.16.1.22.27005 > 91.211.247.221:27015: UDP, length 452
10:59:23.360583 IP 91.211.247.221:27015 > 172.16.1.22.27005: UDP, length 40
10:59:23.402670 IP 172.16.1.22.27005 > 91.211.247.221:27015: UDP, length 16
Terá ida e volta:
172.16.0.2.27005 > 91.211.247.221:27015 (SAINDO)
91.211.247.221:27015 > 172.16.0.2.27005 (ENTRANDO)
Para remover:
$ sudo rm -rf /etc/cloudflare-warp
$ sudo rm -rf /var/lib/cloudflare-warp
ESTUDO DE CASOS
Os comandos apresentados não serão explicados, você pode (e deve, se quiser) pesquisar o significado de cada um. A internet é auto-explicativa.
1) Caso tiver proxy na rede e não dê para desabilitá-lo, teste mudando de modo WARP para PROXY, por exemplo:
$ warp-cli mode proxy
$ warp-cli connect
Para voltar:
$ warp-cli mode warp
$ warp-cli connect
Mas o modo WARP deve bastar.
Para ver mais opções:
$ warp-cli --help
2) Caso aparecer a mensagem "Sorry, no-steam p48 clients are not allowed on this server", significa que o servidor de Counter-Strike 1.6 que você está tentando acessar bloqueia jogadores que usam versões "piratas" (No-Steam) com um protocolo de rede antigo (p48, ou protocolo 48), uma vez que versões piratas (No-Steam) são mais fáceis de burlar e não possuem verificação de integridade oficial (VAC - Valve Anti-Cheat).
No nosso caso significa somente que a versão do CS é muito antiga (32 Bits), a 1.6.
3) Caso aparecer uma mensagem dizendo "Cannot continue without model models/player/ugc_terror_vip/ugc_terror_vip.mdl, disconnecting.", feche ela e execute no console do jogo (caso não quiser copiar e colar, basta digitar as primeiras letras que o console abrirá o leque de opções):
cl_allowdownload 1
cl_allowupload 1
setmaster enable 1
setmaster add xxx.xxx.xxx.xxx:xxxx
sv_lan 0
region 255
heartbeat
Especialmente no servidor "5.199.130.133:27015" que aparece essa mensagem.
Caso isso persistir, tente conectar utilizando o CloudflareWARP com seu respectivo script.
Caso ainda assim persistir, baixe a pasta "cstrike" de:
https://drive.google.com/drive/folders/1X4nTQ_Nd5mG9KQg4x_tm2IEjZmHZGOnh?usp=sharing
Copie a pasta para /opt/cstrike/HLCS/game, substituindo a pasta de mesmo nome que está ali.
Depois que você colocar manualmente, esse loop deve parar. Mas, se ao tentar conectar você ainda vir essas mensagens viciadas, digite isso no console para "resetar" a pilha de rede do jogo:
clientport 27005
net_resend 3
reconnect
4) Estando atrás de um PFSense numa rede interna, provavelmente não conseguirá jogar em alguns servidores.
Primeiro tente fixando os DNSs no arquivo /etc/resolv.conf, por exemplo:
nameserver 8.8.8.8
Caso persistir, peça para o Administrador do pfSense...
Criar Regra de NAT Estático:
Ir em Firewall > NAT > Outbound.
Mudar o modo para Hybrid Outbound NAT (se estiver em Automatic).
Criar uma Mapping Rule no topo:
Interface: WAN
Protocol: UDP
Source: [Seu IP Local ou o Alias do seu PC]
Source Port: Any (ou 27000-27030)
Destination: Any
Translation/target: Marcar a caixa [x] Static Port.
Sem o Static Port, o pfSense faz o "Source Port Remap". O servidor envia os dados do jogo de volta para a porta X, mas o seu PC está ouvindo na porta Y. Isso causa o erro de "Reliable channel overflow" ou pings instáveis.
Ajuste de MTU/MSS (Opcional se o Lag continuar):
Se o download de outros arquivos continuar falhando, peça para ele verificar se há um MSS Clamping ativo em Interfaces > WAN. Para redes com túneis (como o WARP), setar o MSS para 1300 costuma estabilizar o tráfego fragmentado.
5) Exemplo de regras para liberar no firewall, principalmente as portas nas chains input e output.
O exemplo é com o NFTables, mas é somente um exemplo onde você deve mudar/acrescentar regras para seu cenário específico, não copie e cole essas regras como elas estão, pois pode acontecer de perder o acesso à internet:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Loopback
iif lo accept
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
tcp dport { 22, 80, 443 } ct state new accept
# DHCP
udp dport {67,68} accept
# Portas abertas jogo
udp dport 27000-28015 accept
ip protocol icmp accept
}
chain forward {
type filter hook forward priority 0; policy drop;
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
# DHCP
udp dport {67,68} accept
# Portas abertas jogo
udp dport 27000-28015 accept
ip protocol icmp accept
}
chain output {
type filter hook output priority 0; policy drop;
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
tcp dport { 22, 80, 443 } ct state new accept
# DNS
udp dport 53 accept
tcp dport 53 accept
# NTP/NTS
udp dport 123 accept
tcp dport 4460 accept
# DHCP (cliente, se aplicavel)
udp dport 67 accept
udp sport 68 accept
ip protocol icmp accept
}
SCRIPTS
1) fechar_cs.sh
echo "Encerrando o Counter-Strike e limpando o ambiente..."
# 1. Mata o processo do jogo e do carregador
pkill -9 hl_linux
pkill -9 hl.sh
# 2. Desconecta o Cloudflare WARP
warp-cli disconnect
# 3. Mata o Xephyr (caso tenha ele, descomente)
# pkill -9 Xephyr
# 4. Restaura o MTU da placa física para o padrão (1500)
# Ajuste para tua placa de rede
sudo ip link set dev enp3s0 mtu 1500
echo "Túnel WARP desligado. Internet restaurada para o padrão!"
Salve e saia.
Dando permissão de execução:
$ sudo chmod +x ~/fechar_cs.sh
2) cstrike_com.sh
#!/bin/bash
# Script que roda e conecta o CS1.6 com WARP
# Otimiza o MTU da interface
sudo ip link set dev CloudflareWARP mtu 1280
# Limpa a rota anterior e fixa com o IP CloudflareWARP
sudo ip route add 131.196.198.52 dev CloudflareWARP 2>/dev/null
export SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
export DIR="$(dirname "$SCRIPT")"
cd "$DIR/game"
# Executa o jogo usando o tunel
# -window: abre em modo janela
# -w 1024 -h 768: define o tamanho da janela
# -nomousegrab: evita que o mouse fique preso
#./hl_linux -game cstrike -nomousegrab -ip 0.0.0.0 +clientport 27005
# Pode colocar -ip 0.0.0.0 no lugar de -ip 172.16.0.2
"$DIR/steam-runtime/run.sh" ./hl_linux -game cstrike -window -w 1024 -h 768 -nomousegrab -nofbo -nomsaa -gl_clear 1 -windowed -gl -ip 0.0.0.0 +clientport 27005
Salve e saia e dê permissão de execução.
Para criar um ícone na área de trabalho do Debian 13, vamos criar um arquivo .desktop. Isso permitirá que você abra o jogo como qualquer outro aplicativo do sistema, sem precisar abrir o terminal.
Abra o terminal e crie o arquivo na sua pasta de Área de Trabalho:
$ vim ~/Área\ de\ Trabalho/CounterStrike.desktop
Coloque dentro:
[Desktop Entry]
Name=Counter-Strike 1.6
Comment=Jogar CS 1.6 no Debian 13 via WARP
Exec=bash -c "/opt/cstrike/HLCS/game/cstrike.sh"
Icon=/opt/cstrike/HLCS/game/cstrike.ico
Terminal=false
Type=Application
Categories=Game;
Nota: Se você não tiver um arquivo .ico, pode usar o caminho /usr/share/icons/gnome/48x48/devices/input-gaming.png para um ícone genérico.
$ chmod +x ~/Área\ de\ Trabalho/CounterStrike.desktop
Como agora você vai abrir pelo ícone, certifique-se de que o seu script cstrike_com.sh comece garantindo que o WARP esteja conectado automaticamente:
#!/bin/bash
# Garante que o WARP está ligado antes do jogo
warp-cli connect
sleep 2
# ... restante do seu script (caminhos, bibliotecas e execução) ...
Você também pode criar um atalho para o seu script de fechar (fechar_cs.sh) seguindo os mesmos passos acima ou simplesmente rode o comando warp-cli disconnect para liberar a internet para outros usos (como streaming/downloads pesados) quando terminar a jogatina.
3) cstrike_sem.sh
# Script que conecta CS1.6 sem WARP
export SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
export DIR="$(dirname "$SCRIPT")"
cd "$DIR/game"
# Para executar em tela cheia basta tirar -window -w 1024 -h 768
"$DIR/steam-runtime/run.sh" ./hl.sh -game cstrike -window -w 1024 -h 768
Salve, saia e dê permissão de execução.
Pode criar um atalho na área de trabalho também ficando com três ícones: um para entrar no CS1.6 pelo WARP, outro sem o WARP e outro para fechar o CS.
CONCLUSÃO
Os procedimentos aqui foram puramente didáticos porque para jogar CS online gratuito basta entrar no link:
https://play-cs.com/pt/servers
Escolher um servidor com o "map" desejado e conectar.
Para remover:
$ sudo rm -rf HLCS
Descompacte novamente e reinicie o processo após a descompactação.
Configurações pessoais
$ vim /opt/cstrike/HLCS/game/cstrike/userconfig.cfg
// ====================================
// Configurações permanentes do jogador
// ====================================
// Downloads
cl_allowdownload 1
cl_download_ingame 1
cl_allowupload 0
// --------------------
// PERFORMANCE / FPS
// --------------------
fastsprites 0
fps_max 101
fps_override 0
gl_vsync 0
gl_overbright 0
gl_polyoffset 0
gl_monolights 1
gl_dither 0
r_detailtextures 0
mp_decals 20
r_decals 20
cl_showfps 1
// Mouse
m_filter 1
m_rawinput 1
m_customaccel 0
sensitivity 2.5
m_pitch 0.022
m_yaw 0.022
lookstrafe 0
lookspring 0
// Rede
rate 25000
cl_cmdrate 101
cl_updaterate 101
cl_cmdbackup 2
cl_interp 0
cl_interp_ratio 1
cl_lc 1
cl_lw 1
cl_dlmax 1024
cl_timeout 60
// --------------------
// HUD / VISUAL LIMPO
// --------------------
cl_himodels 0
cl_minmodels 1
cl_shadows 0
cl_weather 0
hud_fastswitch 1
hud_centerid 0
net_graph 3
net_scale 5
// --------------------
// SOM (CLARO E PRECISO)
// --------------------
hisound 1
snd_noextraupdate 1
_snd_mixahead 0.1
room_off 1
voice_enable 1
voice_scale 0.75
// --------------------
// MISC / QUALIDADE DE VIDA
// --------------------
cl_dynamiccrosshair 1
cl_crosshair_translucent 1
developer 0
con_mono 0
console 1
Salve e saia.
$ dos2unix /opt/cstrike/HLCS/game/cstrike/userconfig.cfg
O arquivo acima deve ser utilizado com cuidado.
Comece testando com somente os três parâmetros da seção Downloads, depois vá acrescentando e testando.
As configurações feitas no console sobrescrevem temporariamente o arquivo /opt/cstrike/HLCS/game/cstrike/config.cfg, o userconfig.cfg é o arquivo persistente.
Qualquer configuração deve ser feita somente nele.
Se mudar algo no console do jogo, o userconfig.cfg continua intacto.
No jogo você pode conversar com outros malucos.
SHALL WE PLAY A GAME?
