Todos
os jogos no sistema Zeus possuem um conjunto de
251 registradores,
numerados de 0 a 250.
Desses, os primeiros 50
são de uso pré definido pelo sistema e portanto o
primeiro registrador vago,
que o autor do jogo pode definir no seu jogo é o de número
50.
Os
registradores são, na verdade, variáveis inteiras
sinalizadas, de 32 bits (variando de –2147483648
a 2147483647) cuja função é permitir
o registro de estados diversos.
Eles contém informações sobre as condições
de determinados objetos ou estão associados a alguma circunstância
relativa a uma posição ou ação do jogo.
Servem principalmente para realizar cálculos e definir coordenadas
da tela ou visor da posição do jogo.
Eles
podem servir também como contadores ou temporizadores e se
assemelham, na sua aplicação, às variáveis
de um programa. São manipulados por um conjunto específico
de instruções de programação, que fazem
referância a eles como reg.
Por
exemplo: reg
5,7 - indica que o registrador 5
deverá receber o valor 7.
Para
facilitar o desenvolvimento da programação do jogo,
todos os registradores podem receber um nome e, a partir daí,
ser referenciado por ele.
Por exemplo: regdef
5,Contador ou apenas def
5,Contador - dá o nome "Contador"
ao registrador número 5.
Ao
ser iniciada uma partida, os registradores são automaticamente
zerados e devem receber
valores iniciais (se for o caso) através do script inicial
do jogo. Durante a edição do jogo os registradores
podem ser acessados para consulta.
Todos
os registradores podem ter uma frase explicativa, sobre sua função
no jogo, definido pelo programador. Isso ajuda na compreensão
do jogo. Esta frase aparece no rodapé da listagem dos registradores
e pode ser alterada à vontade.
Registradores especiais
pré definidos:
Os
primeiros 50 registradores são de uso especial
do sistema e já possuem funções pré
definidas. Ainda assim, eles não possuem nomes defaults,
ficando a cargo do autor do jogo nomeá-los ou não.
São eles:
1: Posição atual do jogador.
2:
Quantidade máxima de objetos que podem ser carregados.
3:
Quantidade de objetos que estão com o personagem atual.
4:
Fome do personagem.
5:
Sede do personagem.
6:
Contador de passos no escuro.
7:
Contador incrementado a cada frase processada.
8:
Contador decrementado a cada frase processada.
9:
Flag de iluminação do local onde se encontra o jogador.
10: Direção seguida pelo jogador
(0 = norte, 1 = leste...).
11: Contador de minutos do relógio do jogo.
12: Contador de horas do relógio do jogo.
13: Contador de dias do relógio do jogo.
14: Contador negativo de segundos do relógio
(se <> 0)
15: Zerado sempre que o jogador entra em um novo
local.
16: Zerado a cada novo local e incrementado a cada
frase.
17: Contador do looping das instruções.
18: Personagem atual do jogo (de 0 a 7).
19: Contador de jogadas.
20: Máximo de passos no escuro
21: Contador de segundos do relógio.
22: Reservado para uso interno do sistema.
23: Indexador para mensagens dos objetos.
24: Px do clic dentro do link
25: Py do clic dentro do link
26: Px do clic na tela
27: Py do clic na tela
28: Px do clic no objeto
29: Py do clic no objeto
30: Índice do objeto em uso
31 a 38: código das palavras
processadas
39: Valor para delay dos efeitos
40: Px do clic no painel
41: Py do clic no painel
42: retorno para Lk
43: Px para texto animado
44: Py para texto animado
45: Largura do pixel para lineto
46: Tempo delay para o texto animado
47:
0= reconhecimento total do verbo, <> 0 parcial
48:
1= botão especial pra cima, 2= botão especial pra
baixo
49:
reservado
Alguns
desses registradores foram mantidos apenas para compatibilidade
com o sistema Editor,
que deu base ao desenvolvimento do Zeus.
Alguns usos para os registradores
especiais:
O
registrador 1, que
indica numericamente a posição do jogador, é
um caso de manutenção por compatibilidade uma vez
que no Zeus, os locais possuem nomes e não
números. No entanto ele ainda pode ser usado não apenas
para numerar as posições, o que facilita algumas operações
na programação, como definir grupos de locais com
determinadas características.
Por exemplo, no Amazônia,
as posições de 12 a 19 são
as posições onde pode aparecer o cristal ou as posições
de 41 a 45 são as posições
onde a cobra pode aparecer, ou ainda as posições de
2 a 8 representam a mata onde a onça vive.
Uma
vez que a numeração das posições não
é feita mais automaticamente, na criação de
cada uma, os valores do registrador 1 devem ser
atribuidos manualmente, em cada script de posição.
O
registrador 8 funciona
como uma espécie de "bomba relógio" automática,
ou seja, se o seu valor for zero, nada acontece.
Se for maior que zero, então ele é
decrementado a cada nova frase processada e quando atingir zero,
um determinado script é executado. O nome desse script é
definido na função 2 (veja mais sobre
as funções especias clicando
aqui).
Os
registradores 15 e
16 são zerados
sempre que o jogador entra em uma nova posição, porém
o 16
continua sendo incrementado a cada frase. Este sistema permite diferenciar
a primeira vez que o script é executado (quando o jogador
chega na posição) das outras vezes que ele é
acionado (quando o jogador apenas pressiona a tecla Enter, para
ver novamente a descrição do local). Permite também
quantos comandos o jogador executou dentro de uma posição. |