2001-2019, v5.1
 
 
 
 
  JOGOS  NEVERWINTER NIGHTS TUTORIAIS CONSTRUÇÃO DE MÓDULOS #9 / SEÇÕES
 

Tutorial 9: Scripts
Introdução - A linguagem NWScript é muito poderosa, e você pode fazer coisas incríveis com ele. O jogo tenta executar um script a partir de uma instância de um objeto, no momento em que um evento acontece. As instâncias para cada tipo de objeto do jogo, possuem um conjunto de eventos no qual os scripts podem ser indicados. Acrescentando a isso, cada área e todo o módulo possuem certos eventos. O jogo não requer que cada evento possua um script anexado a ele. O propósito deste tutorial é introduzir a linguagem NWScript e o Editor de Scripts do Toolset.

Objetivo - Anexar um script personalizado ao evento do módulo OnAcquireItem, que atualizará o jornal quando o jogador pegar o Anel de Jacen.

 

Tutorial - Script OnAcquireItem
1. Inicie o Toolset e carregue o módulo "Tutorial".

2. Selecione "Module Properties" do menu "Edit" para abrir a janela de Propriedades do Módulo.

3. Pressione "Edit" no evento OnAcquireItem na aba "Events" e abra o Editor de Scripts com um novo script.

4. Digite o seguinte texto para o script, substituindo todo o conteúdo que virá originalmente.

void main()
{
// variable declarations
object oPC; // the PC that acquires the item
object oItem; // the item that was acquired
// get the item that was acquired
oItem = GetModuleItemAcquired();
// if this item is a valid object
if (GetIsObjectValid(oItem) == TRUE)
{
// if the valid item's tag is "it_RingJacen"
if (GetTag(oItem) == "it_RingJacen")
{
// get the PC that acquired the item
oPC = GetItemPossessor(oItem);
// on the PC, set the journal with the tag "jt_Falstadd"
// to its second entry
AddJournalQuestEntry("jt_Falstadd", 2, oPC);
} // if
} // if
}

5. Salve o script como "me_acquireitem" e feche o Editor de Script.

Nota: Um aviso aparecerá, dizendo que o script deve ser compilado antes de utilizado no jogo. A menos que esta opção esteja desativada (não é recomendado), o Editor de Script compilará automaticamente cada script modificado.

6. Pressione "OK" para fechar a janela de Propriedades do Módulo.

 

Uma Ação "Action Taken" Personalizada
1. Abra a conversa de Falstadds selecionando "Edit" a partir do seu menu popup na Lista de Conteúdo do Módulo.

2. Selecione o Nodo 3 ("Obrigado por você..."). Mude para a aba "Action Taken" e pressione o botão Script Wizard (Assistente de Script).

3. Verifique a opção "Give rewards" e pressione "Next".

4. Digite 2000 (baseado no valor que foi definido no Editor de Jornal nesta esta missão) no campo "Give XP", marque a opção "Give to Party" também e pressione "Next".

5. Dê o nome para o script de "at_falstadd03", marque a opção "Start the Script Editor" e pressione "Finish".

6. Assim que o Editor de Script estiver aberto, o script deverá parecer como este:

void main()
{
// Give the speaker some XP
GiveXPToCreature(GetPCSpeaker(), 2000);
}

7. O único problema com isso, é que a recompensa especificada no jornal para esta missão muda, por isso este script deve ser modificado e recompilado também. A melhor maneira de fazer issoé determinar a quantidade que foi atribuída na categoria do jornal. Isto requer que o script seja modificado, ficando dessa forma

void main()
{
// variable declarations
int iXP;
// determine how much experience this quest awards
iXP = GetJournalQuestExperience("jt_Falstadd");
// give the speaker some XP
GiveXPToCreature(GetPCSpeaker(), iXP);
}

8. Uma vez que o script tenha sido modificado, salve-o e feche o Editor de Script. Salve também o arquivo de conversa e então feche o Editor de Conversação.

Salve o módulo, feche o Toolset e tente executar o módulo deste o seu começo.

 

Extra
Crie conversas para os mineiros. O mineiro que conversar com o PJ, deverá estar contente por ele ter vindo salvá-lo e o PJ deverá dizer a eles para que saiam imediatamente da mina. O PJ deverá ganhar 50XP e os mineiros deverão imediatamente, irem para a saída e de volta para Fern. Se o PJ conversar novamente com o mineiro, ele deve responder com agradecimentos, mas sem nenhuma outra ação além disso.

Isso será possível criando três scripts, dois com o Assistente de Script (requer apenas modificações bobas) e um script customizado. Primeiro crie a conversação. Ela será similar a de Falstadd's e na primeira vez que o PJ conversar com mineiro, ele dirá uma coisa primeiramente e para as próximas vezes, uma outra coisa diferente que será repetida seguidamente.

Os dois scripts que controlam aquilo que o mineiro dirá, deverão ser modificados e verificar uma variável local no próprio mineiro. Estes scripts deverão ser criados utilizando o Assistente de Script, como no Tutorial 6 e que modifique para utilizar a funcão GetPCSpeaker(), no qual utilize a constante OBJECT_SELF. A constante OBJECT_SELF indica qual o objeto que está utilizando o script, que neste caso é o mineiro. Isto permitirá ao PJ, salvar vários mineiros e receber uma recompensa para cada um deles. Se a variável estiver no PJ, apenas um único mineiro poderá ser salvo e ganhar apenas uma recompensa, pois seria verificado que você já teria falado com os outros mineiros, e por isso não ganharia mais nada.

O terceiro script deveria rodar no evento "Action Taken" de uma conversa, que estaria acessível num primeiro momento, quando o PJ conversa com o mineiro. Este script dará uma recompensa para o PJ de 50XP e fará o mineiro se mover para a saída em direção a cidade. A maneira mais fácil de mover a criatura é direcioná-la para uma outra localização ou objeto. Agora, utilize as funções GetObjectByTag, AssignCommand e ActionMoveToObject para fazer os mineiros correrem para Falstadd.

Não esqueça de utilizar OBJECT_SELF e de atribuir as conversas para os modelos dos mineiros!

 
 
  NEVERWINTER NIGHTS
2.8.1: APRESENTAÇÃO
2.8.2: PERSONAGEM
2.8.3: RAÇAS
2.8.4: CLASSES
2.8.5: DOMÍNIOS
2.8.6: NPCS
2.8.7: TALENTOS
2.8.8: PERÍCIAS
2.8.9: TUTORIAIS
2.8.9.1: PORTRAITS PERSONALIZADOS
2.8.9.2: ACRESCENTANDO SOM WAVE
2.8.9.3: APROFUNDAMENTOS #1
2.8.9.4: APROFUNDAMENTOS #2
2.8.9.5: APROFUNDAMENTOS #3
2.8.9.6: CRIANDO SUAS PRÓPRIAS CRIATURAS
2.8.9.7: INTRODUÇÃO AO AURORA TOOLSET
2.8.9.8: INTRODUÇÃO AO PLOT WIZARD #1
2.8.9.9: INTRODUÇÃO AO PLOT WIZARD #2
2.8.9.10: INTRODUÇÃO AO PLOT WIZARD #3
2.8.9.11: MODIFICANDO A PELE DAS CRIATURAS
2.8.9.12: CONSTRUÇÃO DE MÓDULOS #1
2.8.9.13: CONSTRUÇÃO DE MÓDULOS #2
2.8.9.14: CONSTRUÇÃO DE MÓDULOS #3
2.8.9.15: CONSTRUÇÃO DE MÓDULOS #4
2.8.9.16: CONSTRUÇÃO DE MÓDULOS #5
2.8.9.17: CONSTRUÇÃO DE MÓDULOS #6
2.8.9.18: CONSTRUÇÃO DE MÓDULOS #7
2.8.9.19: CONSTRUÇÃO DE MÓDULOS #8
2.8.9.20: CONSTRUÇÃO DE MÓDULOS #9
2.8.9.21: DIÁLOGOS
2.8.10: DICAS
2.8.11: TABELAS
2.8.12: IMAGENS
2.8.13: WALKTHROUGH

SHADOWS OF UNDRENTIDE
2.8.14.1: APRESENTAÇÃO
2.8.14.2: CLASSES
2.8.14.3: NPCS
2.8.14.4: TALENTOS
2.8.14.5: IMAGENS
2.8.14.6: WALKTHROUGH

HORDES OF THE UNDERDARK
2.8.15.1: APRESENTAÇÃO
2.8.15.2: CLASSES
2.8.15.3: TALENTOS
2.8.15.4: IMAGENS
2.8.15.5: WALKTHROUGH
/ PUBLICIDADE