Bem vind@ ao fórum Pokémon Portugal!

Também gostas de Pokémon? Então junta-te a nós! =)
_____


AVISO: Isto NÃO é um jogo. Isto é um forum que trata sobre o tema de Pokemon.
Esperemos que te divirtas :)

Participe do fórum, é rápido e fácil

Bem vind@ ao fórum Pokémon Portugal!

Também gostas de Pokémon? Então junta-te a nós! =)
_____


AVISO: Isto NÃO é um jogo. Isto é um forum que trata sobre o tema de Pokemon.
Esperemos que te divirtas :)
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Tutorial] Aula 04 - Flags Parte 1

Ir para baixo

[Tutorial] Aula 04 - Flags Parte 1 Empty [Tutorial] Aula 04 - Flags Parte 1

Mensagem por RicardoC Sáb 25 Ago 2012, 21:07

Vamos entrar numa parte dos scripts que vai-nos acompanhar sempre em todos os scripts e é uma parte chamada Flags.Flags são o que fazem com que um script não se repita ou, cria eventos muito bons que é, por exemplo, um evento só acontece quando fizermos alguma coisa antes. Isso é o que as flags fazem e por estranho que pareça, são muito fáceis de usar.

Há três tipos de flags:
Clearflag
Checkflag
Setflag.

O que faz cada uma delas? Bem, Flags são como chaves de cadeados. Umas abrem o cadeado e outras fecham. Simples, mas vamos analisar isto mais profundamente.
Vamos supor que queremos que um rapaz fale conosco e que depois não nos fale mais.
Temos que fazer um script com flags para fazer com que ele nos fale, mas depois o script não se pode repetir.

Escrevemos o script;

#org $inicio
lock
faceplayer
checkflag 0x200
if 1 goto $nao

O que temos de novo?

checkflag -> Vai verificar se a flag está activa ou não. (Se o cadeado está aberto ou fechado)
0x200
-> Valor das Flags a utilizar. Não se deve repetir o mesmo número nas flags, e aconselho a utilizar de 200 a 299 porque acima disso já são
espaços ocupados que vos podem danificar a rom. Portanto, após este script feito e ser activo no jogo, temos que usar a flag 0x201 porque a
200 já foi utilizada.

if 1 goto $...
-> Como vimos no tutorial anterior o 1 representa o Sim, portanto, vamos traduzir isto. Se o cadeado (if) estiver fechado (já foi feito o
script)(1) ir para (goto) o offset $... (nome que quiserem).


De seguida continuamos a fala normal.

message $flar
$flar 1 = \c\h01\h06Depois disto não te falo mais.
boxset 6
setflag 0x200
release
end

setflag 0x200
-> Isto diz ao script que o diálogo já foi feito e que é para se fechar o cadeado de maneira a que o script não se repita. O valor que
usámos neste script foi o 200, então vamos fechar o valor 200 (porque é o que queremos que não se repita).


Temos aqui esta pequena parte final, mas como é que o script sabe o que é para fazer depois do script estar fechado? Temos que criar um #org com o offset para o caso do script estar fechado.
Então;

#org $nao
release
end

Esta parte é a segunda parte do script que é bastante simples e só precisa disto. Isto é o que? Então, o script se já aconteceu e o cadeado foi fechado, o script vai saltar para o offset $... e nesse offset o que é que vai acontecer? Nada! Poque? Porque neste offset o que é que temos? Temos o release que liberta a personagem para caminhar e o end que termina o script, logo, se o cadeado estiver fechado (a flag foi activa) não se vai repetir.

O que falta? O clearflag! O que é o clearflag? Básicamente abre a flag que quisermos. Então, vamos supor que queremos que o rapaz volte a falar conosco, escrevemos um script básico e metemos o comando Clearflag 0x200 porque é o valor do rapaz que não nos falava.

Para terminar e para as flags funcionarem, após se compilar o script e o por na Rom através do A-Map, logo abaixo do Script Offset temos algo a dizer ID de pessoa, e isso é o valor da nossa Flag, então aí, temos que por o 0200. Porque como já foi dito, é o valor da Flag utilizada e da pessoa que não nos vai falar mais depois do script acontecer.

Ao inicio isto pode parecer um pouco confuso, mas aconselho a ler e reler, tirar duvidas e experimentar ao mesmo tempo, só assim é que funciona.

RicardoC.
RicardoC
RicardoC
Rank:
Rank:

Mensagens : 87

http://http:\\www.pokemonelements.foruns.com.pt

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos