Ativa o menu
Alternar menu de preferências
Alternar menu pessoal
Não autenticado(a)
Your IP address will be publicly visible if you make any edits.

Console commands (CCMDs) são instruções digitadas no console que podem ser usadas para causar um efeito imediato no ZDoom.

Categorias

Para facilitar a busca de comandos específicos, a wiki separa os comandos disponíveis em várias categorias:

Personalização

Depuração/Trapaças

Informações

Multijogador

Controle do jogador

Outros comandos

Uso

Você pode executar CCMDs no console do ZDoom, acessado por padrão ao pressionar a tecla til (~). A maioria dos comandos só precisa ser digitada como mostrado para ter efeito; outros possuem um ou mais parâmetros (obrigatórios ou opcionais) que são digitados após o comando, separados por um espaço. Por exemplo, para sair do jogo pelo console, você pode simplesmente digitar "exit". Porém, se você quiser vincular a tecla X a +crouch, você deve inserir estes parâmetros no console:

bind X +crouch

Alguns comandos terão efeitos diferentes dependendo da quantidade e do tipo de parâmetro fornecido. Por exemplo, se você removesse o segundo parâmetro (+crouch) da linha anterior, o comando instruiria o ZDoom a recuperar o vínculo atual da tecla X e exibí-lo no console. Quando comandos possuem diferentes formas de uso, isso é indicado nas listas da wiki. Parâmetros opcionais normalmente aparecem entre colchetes ([, ]) e parâmetros obrigatórios normalmente aparecem entre sinais de menor/maior (<, >).

Além disso, CCMDs podem ser inseridos na linha de comando usando +<CCMD> (seguido de quaisquer parâmetros apropriados). Por exemplo, para iniciar o ZDoom no MAP01 e imediatamente congelar os atores no mapa, você poderia usar:

zdoom.exe -iwad doom2.wad -warp 01 +freeze

AutoExec

Uma série de comandos de console pode ser executada automaticamente na inicialização a partir de um arquivo. O caminho e o nome do arquivo devem ser informados no arquivo de configuração do ZDoom, em uma das seções [<Game>.AutoExec]. Por padrão, o ZDoom procurará por um arquivo chamado autoexec.cfg para todos os jogos.

A execução automática de comandos de console é especialmente útil para o comando logfile, pois permite salvar no arquivo de log mensagens que são impressas antes que o console fique disponível. Isso facilita detectar e relatar bugs ou outros problemas que impeçam o jogo de iniciar normalmente.

Exemplo de arquivo autoexec.cfg para criar um logfile: logfile log.txt

Comandos de botão

Comandos de botão são comandos que representam botões e vêm em pares. Cada "botão" tem um comando prefixado por + e outro correspondente prefixado por -. A versão com + simula pressionar o botão (ou "ligar" o comando), enquanto a versão com - simula soltar o botão ("desligar" o comando).

Quando você associa a uma tecla um comando que começa com +, ao soltar a tecla o ZDoom executará automaticamente a versão - do mesmo comando. Observe que isso também funciona com aliases. Isso fornece uma forma útil de vincular várias ações a uma única tecla. Suponha que você queira o comportamento normal do Doom de avançar e usar quando você dá um duplo clique no botão direito do mouse. Se você usar os comandos:

bind mouse2 +forward doublebind mouse2 +use

O ZDoom fará você avançar quando pressionar o botão direito do mouse. Quando você der duplo clique, você usará, mas não avançará. Para simular o comportamento padrão do Doom, você pode substituir o comando doublebind por estes três comandos:

alias +useforward "+use; +forward" alias -useforward "-use; -forward"

doublebind mouse2 +useforward

Agora, quando você der duplo clique no botão direito do mouse, o alias +useforward será executado. Como o nome +useforward começa com +, ao soltar o botão direito do mouse o alias -useforward será executado (se -useforward não estivesse definido, um erro seria exibido quando o ZDoom tentasse usá-lo).

Esse comportamento de executar um comando - ao soltar uma tecla se aplica apenas ao primeiro comando ou alias vinculado à tecla. Se você vincular uma tecla a "+forward; +right", ao soltar a tecla será executado o comando "-forward; +right" e não "-forward; -right". Como mostrado acima, você pode usar aliases para obter o comportamento correto.

Outro truque que você pode fazer com aliases é criar uma tecla que execute apenas o comando + sem executar o comando -. Se você quiser uma tecla que faça você andar para frente quando pressionada e continue andando mesmo depois de soltar, você pode usar um alias assim:

alias go "+forward"

Então, em vez de vincular +forward a uma tecla, você vincula go à tecla. Isso funciona porque go não começa com +, então nada acontecerá quando você soltar a tecla. O ZDoom só olha para o comando realmente vinculado à tecla para determinar se deve executar um comando - quando a tecla é solta; ele não olha dentro de aliases.

Funções do console

Os comandos alias, eval e test são funções poderosas que podem ser usadas para realizar vários cálculos e então exibir os resultados no console ou armazená-los em uma variável, além de criar macros de console scriptadas.

alias <command name> [string of commands]

Cria um novo comando chamado command name que executa todas as instruções em string of commands. Comandos individuais em um alias devem ser separados por ponto e vírgula (;). Como exemplo, este alias imprimirá uma mensagem inútil e fará o jogador pular:
 alias Yay "echo Yippee!; +jump; -jump"
Note que você pode inserir informações em aliases usando o símbolo de porcentagem (%). "%n" se refere à n-ésima string separada por espaços fornecida pelo usuário. "%0" retorna o nome do próprio alias.
Qualquer comando que possa ser digitado no console pode ser usado em um alias. Assim, aliases podem se tornar ferramentas poderosas nas mãos de um usuário com um pouco de imaginação e conhecimento dos comandos disponíveis. Alias é um dos comandos que pode ser usado em um lump KEYCONF.

eval <expression> [variable]

Avalia uma expressão matemática e a imprime no console ou a armazena em uma variável de console.
Ao acessar CVARs dentro da expressão, você deve prefixá-las com um cifrão ($).

test <expression> <true-command> [<false-command>]

Avalia expression e executa true-command se o resultado for diferente de zero. Se o resultado for zero, então false-command será executado (se você o tiver especificado).

Expressões

As expressões para eval e test são escritas usando notação prefixa em vez da notação infixa mais comum. Basicamente, você primeiro especifica o que quer fazer (o operador) e depois em que quer aplicar (os operandos). Você deve separar operadores e operandos com espaços. Os operadores suportados são:

+ a b Soma a e b.
- a b Subtrai b de a.
* a b Multiplica a e b.
/ a b Divide a por b.
% a b Calcula o resto de a/b.
^ a b Eleva a à potência b.
< a b Produz 1 se a for menor que b e 0 caso contrário.
<= a b Produz 1 se a for menor ou igual a b e 0 caso contrário.
> a b Produz 1 se a for maior que b e 0 caso contrário.
>= a b Produz 1 se a for maior ou igual a b e 0 caso contrário.
= a b Produz 1 se a for igual a b e 0 caso contrário.
== a b Produz 1 se a for igual a b e 0 caso contrário.
!= a b Produz 1 se a for diferente de b e 0 se for igual.
<> a b Produz 1 se a for diferente de b e 0 se for igual.
xor a b Calcula o XOR bit a bit de a e b.
& a b Calcula o AND bit a bit de a e b.
! a b Calcula o OR bit a bit de a e b.
&& a b Calcula o AND lógico de a e b.
|| a b Calcula o OR lógico de a e b.

Exemplos

Este é um exemplo de um zoom personalizado que permite ao jogador alternar entre um zoom e a visão normal com um único botão. Este exemplo funciona em todas as versões do ZDoom e no GZDoom anterior à 4.5.0: alias zoomout "fov 90; eval * $mouse_sensitivity 4.5 mouse_sensitivity; rebind zoomin" alias zoomin "fov 20; eval / $mouse_sensitivity 4.5 mouse_sensitivity; rebind zoomout" bind F zoomin

Para uma versão que funciona no GZDoom 4.5.0 ou posterior, esta versão deve ser usada, pois a sensibilidade do mouse foi dividida em variáveis X e Y separadas: alias zoomout "fov 90; eval * $m_sensitivity_x 4.5 m_sensitivity_x; eval * $m_sensitivity_y 4.5 m_sensitivity_y; rebind zoomin" alias zoomin "fov 20; eval / $m_sensitivity_x 4.5 m_sensitivity_x; eval / $m_sensitivity_y 4.5 m_sensitivity_y; rebind zoomout" bind F zoomin

Esses comandos criam dois aliases. O alias zoomout usa o CCMD fov para alterar o campo de visão do jogador (simulando uma visão aproximada), o comando eval para ajustar dinamicamente o mouse_sensitivity, e então o comando rebind para mudar a tecla vinculada (neste caso, F) para ativar o alias zoomin. Esse alias então reverte as mudanças feitas por zoomout e vincula F de volta a ele. Dessa forma, cria-se um efeito de alternância.

Vamos aplicar isso a um script simples de alternância do mouse-look. Crie os seguintes aliases:

alias +mslook "+mlook; rebind -mslook" alias -mslook "-mlook; rebind +mslook"

Vincule uma tecla ou botão do mouse a "+mslook" para iniciar o bind de alternância. Você notará que, quando a tecla é pressionada, o jogo alterna entre o mouse-look estar ligado e desligado.

Esses exemplos demonstram o uso de expressões com eval e test.

Para calcular 2+2: eval + 2 2 Para calcular 5-3: eval - 5 3 Para calcular 2+(5*6): eval + 2 * 5 6 Para diminuir o número de screenblocks: eval - $screenblocks 1 screenblocks Para imprimir uma mensagem diferente dependendo se autorun está ligado ou desligado: test $cl_run "echo cl_run is on" "echo cl_run is off" Para verificar que o ZDoom faz adições básicas corretamente: test = + 2 2 4 "echo 2+2 really is 4" Para imprimir mensagens diferentes dependendo do valor de uma variável: test <= $screenblocks 10 "echo the view window is shrunk" "echo the view window is full size"