ACS
Mais ações
ACS (Action Code Script) é a linguagem de script originalmente criada para Hexen pela Raven Software e que foi amplamente expandida pelo ZDoom.
Introdução
O ACS permite que criadores de mapas programem eventos durante o jogo, tornando possível criar ambientes interativos mesmo no motor arcaico de Doom de forma muito mais flexível. Com comandos bastante simples, um autor pode modificar a estrutura de um mapa de várias maneiras, como subir e descer pisos separadamente ou simultaneamente, na mesma direção ou em direções opostas, e até qualquer altura ou profundidade desejada. Também é possível mover certas paredes, desde que atendam a critérios específicos (veja PolyObjects). Texturas exibidas em pisos e paredes podem ser alteradas. Monstros — e qualquer ator, na verdade — podem ser colocados, removidos, monitorados, ter várias de suas propriedades alteradas, receber objetivos, etc. O ACS é uma implementação de script que abre muitas possibilidades, especialmente se quem o utiliza for talentoso, paciente e criativo.
De forma um pouco mais técnica, um script é algo que uma pessoa escreve em algum editor de texto e que contém scripts individuais (semelhantes a sub-rotinas), comandos, declarações de variáveis e assim por diante. O ACS é uma linguagem de programação própria em miniatura, estruturada de forma muito semelhante ao C/C++. Os principais elementos a reconhecer são os scripts e seus tipos de script, que basicamente são os eventos que disparam a sequência de comandos contida em um determinado script. Um script é iniciado digitando algo como o exemplo a seguir:
/* comentario*/ // aqui tambem
int Disponivelparatodososcritps = 101;
int eupossofazervetores[3] = {3,6,9};
Script 1 OPEN
{
int Variaveldoscript = 0;
while(Disponivelparatodososcritps == 101)
{
Variaveldoscript++;
Delay(1);
}
}
Observe que executar um script em loop sem um atraso fará com que o ZDoom o encerre automaticamente, pois isso impediria que qualquer outra coisa no mapa fosse executada. Isso é determinado contando a quantidade de ações chamadas pelo script e encerrando-o caso esse número chegue a 2.000.000. Algumas funções, como distance, podem atingir esse limite quando chamadas dentro de um grande loop “for”. Quando isso acontece, você verá uma mensagem como a seguinte:
Variáveis são declaradas de forma semelhante à de muitas linguagens de programação. Se você quiser que uma variável esteja disponível para todos os scripts (escopo “global”), declare/defina-a fora de qualquer declaração de script (por tradição, acima delas). Arrays (variáveis que permitem armazenar e referenciar vários valores) são válidos no ZDoom. Elementos individuais de um array podem ser diferenciados atribuindo números de índice. Por exemplo, para atribuir o valor inteiro 9 ao array ICanMakeArrays no elemento 2 (que é o TERCEIRO elemento, já que arrays começam a contar do zero), você usaria a seguinte instrução:
ICanMakeArrays[2] = 9;
Note que um script é definido de forma semelhante a uma função em C, inclusive no fato de que ele não precisa ser terminado com ponto e vírgula após a chave de fechamento, diferentemente das instruções dentro dos scripts. “OPEN”, como usado neste exemplo, é um tipo de script que informa ao ZDoom que o script deve ser executado ao iniciar o nível.
Observe também que o ACS suporta instruções condicionais (“if”) e, portanto, loops criados com essas instruções. Ele oferece suporte à maioria (se não a todas) as implementações de condicionais e loops do C/C++.
O ACS precisa ser compilado antes de poder ser usado em um mapa. A ferramenta de linha de comando ACC foi criada especificamente para esse propósito.
Subpáginas
Um guia rápido para iniciantes em ACS
Configuração de ACS no Doom Builder
Script types (OPEN, ENTER, etc)
Tutorial de ACS
Noções básicas de ACS
Estruturas de controle
Trabalhando com ACS
Usando ACS em mapas no formato Doom
