NWScript

NWScript
Surgido em2002
Criado porEquipa da BioWare para o NWN
Estilo de tipagemtipagem estática e forte
Principais implementaçõesAurora Toolset
Influenciada porC, C++.
InfluenciouNWScript do NWN2
LicençaBioWare EULA

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.

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

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

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

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