Navegando pelos scripts
 

Se você leu com atenção a página anterior, já deve ter percebido que uma aventura nada mais é do que ir de script em script, de acordo com os links criados em cada desvio. Na verdade é quase como passar as páginas de um livro, ir de local em local ou saltar entre páginas da internet. O mecanismo é basicamente o mesmo, mas com algumas variações.

Existe um conjunto grande de instruções que você pode usar para programar cada página, local, ou script e o sub conjunto mais importante é o das instruções link:. Em resumo, uma instrução link: define uma determinada área, pelas coordenadas X,Y, com largura e altura. A área definida pode receber um elemento (texto ou figura), servir para marcar um espaço clicável ou ambos, receber um elemento clicável e, ao ser clicada, produzir um desvio ou a execussão do script indicado.

Assim como visto no exemplo anterior, o script inicial pode conter um link que inicia a aventura, quer seja apresentando um menu de opções ou indo diretamente a uma página, local ou script. Por exemplo, digamos que a primeira posição da aventura O Portal Maldito tenha o nome frenteportal. O script start ficaria assim:

//== script inicial ==================================
  telpos= apresenta.png
  Link: map,613,261,138,40,$frenteportal
  fim

O passo seguinte é criar o script de nome frenteportal. Da mesma forma que fizemos com o script start, inicialmente o script pode conter as seguintes instruções:

//== frenteportal / posição em frente ao portal =========
  telpos= fotopos1.png
  setpos= frenteportal
  retscp= frenteportal
  link: map,532,133,125,124,$portal
  fim

Como já vimos, a instrução telpos= diz ao sistema qual é a tela da posição atual. Cabe a você produzí-la e fazer o upload para o servidor da aventura. A instrução setpos= indica para o sistema que é nessa posição que o jogador está (mais à frente você vai entender melhor isso). E a instrução retscp= indica o nome do script de retorno, ou seja, se o jogador for para um menu de opções (por exemplo) e quiser "retornar ao jogo" sem selecionar nenhuma delas, o sistema saberá exatamente onde ele estava.

Só falta agora produzir o link de desvio, para "chegar mais perto" do portal e faremos isso da mesma forma que fizemos no script start, ou seja, criando uma instrução link: map. Veja a figura abaixo como ficaria a posição frenteportal.

O passo seguinte é construir da mesma forma o script portal, que seria uma posição mais próxima para atravessar o mesmo. Veja como ela seria:

//== portal / posição bem em frente do portal ===========
  telpos= fotopos2.png
  setpos= portal
  retscp= portal
  link: fig,416,308,66,28,voltar.png,$frenteportal
  fim

A maior diferença em relação à posição anterior é que colocamos uma seta no próprio painel para indicar o "retorno" à posição anterior, ou seja, ir para a posição que está "nas costas" do jogador. Esta "seta" nada mais é do que uma imagem que você já previamente preparou e fez upload no servidor da aventura.

Note que a instrução link: map mudou para link: fig acrescentando o nome da figura que será mostrada. Veja como ficou:

Para complementar o "giro" pelas posições, só faltou mesmo dizer alguma coisa sobre elas para o jogador e em ambas as posições colocaremos uma frase no rodapé...

na posição frenteportal:

  link:   msg,30,329,435,32,5,Esse caminho levou a um portal.,BIu000000

na posição portal:

link: msg,30,329,435,32,5,Você está diante do portal.,BIu000000

Ambas ficam imediatamente antes da instrução fim e a instrução usada será link: msg que, neste caso, vai colocar a frase com o tamanho da fonte 5 e o parâmetro BIu000000:

B = Bold (b = sem bold);
I = Itálic (i = sem intálic);
U = Underlined (u = sem underlined);
000000 = cor das letras.

Você pode construir uma aventura inteira só fazendo este tipo de navegação.

Como já foi dito, os scripts podem representar as posições ou páginas da aventura / livro mas não necessariamente apenas isso. No caso de uma aventura interativa, todas as posições receberam uma instrução retscp=. Agora é o momento de utilizar este recurso.

Por exemplo, vamos criar um script para servir como menu de opções, ou seja, embora ele não seja realmente uma posição, terá uma tela de fundo e uma frase específica.

//=== Script: menu ==============================
  telpos= telamenu.png
  link: fig,181,68,42,42,renew.png,renew.php?Scp=start
  link: msg,230,85,300,30,5,Reiniciar a partida,BIu000000
  link: msg,30,329,435,32,5,Selecione a opção desejada.,BIu000000
  link: tlk,674,267,72,32,5,voltar,$xvlt
  fim

Note que a figura renew.png vai ser o ícone clicável que ativará a reinicialização da partida e neste caso é executado um arquivo php específico (renew.php), com o nome do script que será carregado assim que a reinicialização terminar.

Para que este esquema funcione perfeitamente é preciso incluir em todos os scripts que representam as posições (no cado portal e frenteportal) a seguinte linha:

  link: fig,640,3,93,28,menu.png,$menu

O outro ponto importante das páginas avulsas, tipo menu, é o retorno à página / posição anterior se o jogador não quiser reiniciar. Note que o link voltar possui como script destino a palavra xvlt e isso indica ao sistema para recuperar o nome do último script colocado em retscp=.

É provável que você já tenha notado que toda referência a um script destino, nas instruções link: começou com o caracter "$". Na verdade a instrução correta seria:

  link: tlk,674,267,72,32,5,voltar,exescp.php?Scp=xvlt

O uso do "$" serve apenas para abreviar a instrução e facilitar a sua compreensão.

Gostou? Quer ver o sistema funcionando? Cloque no link abaixo e estude os scripts. Se estiver logado no Micro Aventuras faça o load da aventure para conhecer de perto a programação dela.

http://tilt.net/html/microsis/inicio.php?Pfx=opm