NWScript

linguagem de programação

NWScript é uma linguagem de scripting desenvolvida pela BioWare para o jogo Neverwinter Nights, baseando-se no C e C++. Devido à incompatibilidade do Aurora Toolset com o Mac OS X e Linux foi criado por terceiros o Neverscript, implementação do NWScript para estas plataformas, em open source.

NWScript
Surgido em 2002
Criado por Equipa da BioWare para o NWN
Estilo de tipagem tipagem estática e forte
Principais implementações Aurora Toolset
Influenciada por C, C++.
Influenciou NWScript do NWN2
Licença BioWare EULA

O NWScript é também usado nos jogos de video The Witcher, Star Wars: Knights of the Old Republic, Star Wars: Knights of the Old Republic II: The Sith Lords e Jade Empire. Neverwinter Nights 2, usa uma versão modificada desta linguagem, com suporte à passagem de parâmetros aos scripts e a adição de funções.

Sintaxe

editar

Apesar de baseado em C, o NWScript não possui algumas das funções mais poderosas desta linguagem, como operações binárias e algumas funções matemáticas. O código fonte das funções não é acessível por parte do utilizador. Estas funções são listadas num ficheiro script especial e não compilável, a partir de onde se faz o mapeamento das mesmas no Aurora Engine. Os usuários podem definir as suas próprias funções e incluir as mesmas através da directiva #include.[1]

Olá, mundo

editar

Não existe, no NWScript, modo de escrever directamente para o ecrã. Em vez disso, as personagens podem ser controladas de forma a falarem linhas de texto.

void main()
{
    SendMessageToPC(GetEnteringObject(), "Olá, mundo");
}

Este script regista a mensagem Olá, mundo no registo de mensagens do jogador. O NWScript é orientado a eventos, pelo que este script só será accionado se colocado no evento OnClientEnter, no Aurora Toolset. Como em C++, main() é a função de entrada do script, ou seja, a primeira a ser executada.[2]

Todas as linhas precedidas de // são ignoradas pelo compilador, podendo ser usadas para documentar o código. À semelhança do C, também podem ser usados */ e /* para comentários em bloco.[3]

Formato do ficheiro

editar

Quando o Aurora Toolset grava um script, ele armazena o código base num ficheiro de texto com a terminação .nss. Aquando da compilação, um ficheiro .ncs e .ndb são criados. O primeiro é o ficheiro executado pelo Aurora Engine, e o segundo um ficheiro especial para efeitos de debugging. Apenas o primeiro é usado, salvo se o .ndb for chamado explicitamente.

Aquando da gravação do módulo, os ficheiros são compactados em um único ficheiro, com a extensão .mod.

Referências

  1. «Lista de Diretivas para NWScript». Consultado em 20 de setembro de 2009. Arquivado do original em 26 de abril de 2009 
  2. «Celowin's NWScript Lesson 1». Consultado em 19 de setembro de 2009. Arquivado do original em 3 de junho de 2009 
  3. Comments Explanation[ligação inativa]

Ligações externas

editar