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.

ACS: mudanças entre as edições

De Brdoom wiki
MegaManx3 (discussão | contribs)
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:


  // This is a comment
  // Assim se faz um comentário.
  /* This too */
  /* Assim também! */
  int AvailableToAllScripts = 101;
  int VariavelDisponivelParaTodosOsScripts = 101;
  int ICanMakeArrays[3] = {3,6,9};
  int DaPraFazerVertores[3] = {3,6,9};
   
   
  Script 1 {{SType|Open}}  
  Script 1 {{SType|Open}}  
  {
  {
     int ScriptVariable = 0;
     int VariavelSoParaEsseScript = 0;
     while(AvailableToAllScripts == 101)
     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 ICanMakeArrays, no elemento 2 (que é o TERCEIRO elemento, já que arrays começam em 0), você usaria: ICanMakeArrays[2] = 9;
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

DoomWiki.org
For more information on this article, visit the ACS page on the Doom Wiki.

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.

Subpáginas

Tutorial de ACS

Básico de ACS

Estruturas de controle

Trabalhando com ACS

Recursos