ACS: mudanças entre as edições
Mais ações
Sem resumo de edição |
Nome do vetor: DaPraFazerVertores. |
||
| (2 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 6: | Linha 6: | ||
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 (como sub-rotinas), comandos, declarações de variáveis e assim por diante. ACS é uma linguagem de programação própria em miniatura, estruturada de forma parecida com C/C++. Os itens principais a reconhecer são os scripts e seus [[script types|tipos de script]], que basicamente são os eventos que disparam a sequência de comandos contida em um script. Um script pode ser iniciado escrevendo algo como o exemplo abaixo: | 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 (como sub-rotinas), comandos, declarações de variáveis e assim por diante. ACS é uma linguagem de programação própria em miniatura, estruturada de forma parecida com C/C++. Os itens principais a reconhecer são os scripts e seus [[script types|tipos de script]], que basicamente são os eventos que disparam a sequência de comandos contida em um script. Um script pode ser iniciado escrevendo algo como o exemplo abaixo: | ||
// | // Assim se faz um comentário. | ||
/* | /* Assim também! */ | ||
int | int VariavelDisponivelParaTodosOsScripts = 101; | ||
int | int DaPraFazerVertores[3] = {3,6,9}; | ||
Script 1 {{SType|Open}} | Script 1 {{SType|Open}} | ||
{ | { | ||
int | int VariavelSoParaEsseScript = 0; | ||
while( | while(VariavelDisponivelParaTodosOsScripts == 101) | ||
{ | { | ||
ScriptVariable++; | ScriptVariable++; | ||
} | } | ||
} | } | ||
| Linha 25: | Linha 24: | ||
Runaway script 1 terminated | Runaway script 1 terminated | ||
Variáveis são dimensionadas como em 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 do array são diferenciados por índices. Por exemplo, para atribuir o valor inteiro 9 ao array | Variáveis são dimensionadas como em 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]] (ou "vetores", são variáveis que permitem armazenar e referenciar vários valores) são válidos no [[ZDoom]]. Elementos individuais do array são diferenciados por índices. Por exemplo, para atribuir o valor inteiro 9 ao array DaPraFazerVertores, no elemento 2 (que é o TERCEIRO elemento, já que arrays começam em 0), você usaria: DaPraFazerVertores[2] = 9; | ||
Note que um script é definido de forma parecida com uma função em C, incluindo o fato de que ele não precisa ser terminado com ponto-e-vírgula após a chave de fechamento, como acontece com instruções dentro de scripts. "OPEN", como usado neste exemplo, é um tipo de script que diz ao [[ZDoom]] que o script deve ser executado ao iniciar o nível. | Note que um script é definido de forma parecida com uma função em C, incluindo o fato de que ele não precisa ser terminado com ponto-e-vírgula após a chave de fechamento, como acontece com instruções dentro de scripts. "OPEN", como usado neste exemplo, é um tipo de script que diz ao [[ZDoom]] que o script deve ser executado ao iniciar o nível. | ||
| Linha 35: | Linha 34: | ||
==Subpáginas== | ==Subpáginas== | ||
* [[A quick beginner's guide to ACS]] | * [[A quick beginner's guide to ACS| Um Guia de ACS para iniciantes ]] | ||
* [[Data types|Variables and data types]] | * [[Data types|Variables and data types]] | ||
* [[Definitions|Unit definitions]] | * [[Definitions|Unit definitions]] | ||
Edição atual tal como às 22h50min de 2 de março de 2026
ACS (Action Code Script) é a linguagem de script que foi criada originalmente para Hexen pela Raven Software e foi bastante expandida pelo ZDoom.
Introdução
ACS permite que criadores de mapas programem eventos durante o jogo, tornando a criação de ambientes interativos — mesmo no motor arcaico de Doom — infinitamente mais flexível. Com comandos bem básicos, o autor pode modificar a estrutura de um mapa de várias formas, como levantar e baixar pisos separadamente ou ao mesmo tempo, na mesma direção ou em direções opostas, e para qualquer altura ou profundidade. É possível até 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 — podem ser colocados, removidos, monitorados, ter várias propriedades modificadas, receber objetivos etc. O ACS abre muitas possibilidades, especialmente se quem o usa 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 (como sub-rotinas), comandos, declarações de variáveis e assim por diante. ACS é uma linguagem de programação própria em miniatura, estruturada de forma parecida com C/C++. Os itens principais 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 script. Um script pode ser iniciado escrevendo algo como o exemplo abaixo:
// Assim se faz um comentário.
/* Assim também! */
int VariavelDisponivelParaTodosOsScripts = 101;
int DaPraFazerVertores[3] = {3,6,9};
Script 1 OPEN
{
int VariavelSoParaEsseScript = 0;
while(VariavelDisponivelParaTodosOsScripts == 101)
{
ScriptVariable++;
}
}
Observe que entrar em loop em um script sem um delay fará com que o ZDoom finalize o script automaticamente, porque ele não daria chance para mais nada no mapa rodar. Isso é determinado contando quantas ações foram chamadas pelo script e encerrando-o quando esse total chega a 2.000.000. Algumas funções, como distance, podem atingir esse limite quando chamadas em um grande loop "for". Quando isso acontecer, você verá uma mensagem como:
Runaway script 1 terminated
Variáveis são dimensionadas como em 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 (ou "vetores", são variáveis que permitem armazenar e referenciar vários valores) são válidos no ZDoom. Elementos individuais do array são diferenciados por índices. Por exemplo, para atribuir o valor inteiro 9 ao array DaPraFazerVertores, no elemento 2 (que é o TERCEIRO elemento, já que arrays começam em 0), você usaria: DaPraFazerVertores[2] = 9;
Note que um script é definido de forma parecida com uma função em C, incluindo o fato de que ele não precisa ser terminado com ponto-e-vírgula após a chave de fechamento, como acontece com instruções dentro de scripts. "OPEN", como usado neste exemplo, é um tipo de script que diz ao ZDoom que o script deve ser executado ao iniciar o nível.
Note também que ACS suporta condicionais ("if") e, portanto, loops feitos com condicionais. Ele suporta a maioria (se não todas) as implementações de condicionais e loops de C/C++.
ACS precisa ser compilado antes de poder ser usado em um mapa. A ferramenta de linha de comando ACC foi feita para esse propósito.
