qna_rh
Thread Id: 16346
Thread Name: Como asigno una flag a un script
#0
pedro19900 24127
Pues como dice el titulo ¿como asigno una flag a un script?
#1
gintonic091 19818
Las flags se usan asi:
setflag 0xFlag 'Activa la flag
checkflag 0xFlag 'Chequea la flag, es decir, comprueba si está activada o no
clearflag 0xFlag 'Desactiva la flag

Es muy simple y fácil...
Un ejemplo:
#dynamic 0x800000
#org @inicio
checkflag 0x856
if 0x1 goto @flag
lock
faceplayer
msgbox @texto 0x6
setflag 0x856
release
end

#org @flag
lock
faceplayer
msgbox @texto2 0x6
release
end

#org @texto
= Toma, te doy este caramelo.

#org @texto2
= ¡Hey! Ya te he dado tu caramelo... No tengo más.

Es un ejemplo de como usar una flag.
Lo que he hecho ha sido al principio, poner un checkflag para que me compruebe si la flag 856 está activa o no. Si lo está, iría al puntero @flag directamente, pero como no lo está, se lo salta y sigue con el script. Entonces, al final del script, he puesto un setflag para activar la flag 856 para que el primer script no se ejecuta más, y que cada vez que hables con el personaje que lleve el script, haga el script del @flag y no el primero...
¿Lo entiendes verdad? Espero que sí... xD
No es tan difícil el uso de las flags cuando las entiendes un poco, ya verás ^^
Si tienes más dudas, postea!

Suerte y un saluder! :D
#2
pedro19900 24127
entonces si no he entendido mal cuando pones checkflag 0xflag es el que se asigna al script pero ¿como hago para que cuando pise otro script el primero pase a su segunda funcion? y me sigue repitiendo el script (cuando entro y salgo de una casa) hace el principio del script y el final y vuelve a empezar este es con el que he estado practicando y no se cual es el fallo porque según la explicación no se debería repetir el principio

#dynamic 0x800000
#org @inicio
checkflag 0x2
if 0x1 goto @flag
lock
faceplayer
msgbox @frase 0x6
setflag 0x2
release
end

#org @flag
lock
msgbox @frase2 0x6
faceplayer
release
end

#org @frase
= hola

#org @frase2
= adios
#3
gintonic091 19818
Emm... Checkflag lo que hace es comprobar si la flag esta activada o no, el comando checkflag no activa ni desactiva nada, solo comprueba.

Y para eso has de poner un setflag al final de un script, y en otro un checkflag con la flag que has usado. Por ejemplo:

#dynamic 0x800000
#org @inicio
checkflag 0x850
if 0x1 goto @flag
lock
faceplayer
msgbox @texto 0x6
release
end

#org @flag
faceplayer
lock
msgbox @texto2 0x6
release
end

#org @texto
= El primer texto

#org @texto2
= El segundo texto

ese sería el primer script.

#dynamic 0x800000
#org @inicio
lock
faceplayer
msgbox @texto 0x6
setflag 0x850
release
end

#org @texto
= El texto...

Y este sería el segundo script, el que activase la flag 850 para que en el primer script pueda ejecutar el script del puntero @flag.

Lo entiendes ahora? :)
Un saluder! :D
#4
pedro19900 24127
Si ya lo comprendí (al fin) xD muchas gracias ya se puede cerrar esto