qna_rh
Thread Id: 25175
Thread Name: (Duda) (FR) ¿Que hago para que un script de nivel se ejecute una sola vez?
#0
Jonouchi~ 27699
Hola a todos, bueno, ayer habia hecho una pregunta sobre los scripts de nivel (no directamente) y entonces me enviaron unos tutoriales (muy buenos por cierto) en los cuales me enseñaban a hacer los scripts de nivel, vale, entonces yo hice correctamente el script de nivel, funcionan todos los comandos perfectamente y no he tenido ningun problema, aunque como dice el titulo, ¿Que hago para que un script de nivel no se repita? el script es este:

'---------------
#org 0x2D59AC
checkflag 0x4096
if 0x1 goto 0x82D59AC
applymovement MOVE_PLAYER 0x82D5A33
waitmovement 0xFF
textcolor 0x0
msgbox 0x82DD1AE MSG_NORMAL '"FEGIO: Vale, [player], [rival], vo..."
applymovement 0x4 0x82D5A36
waitmovement 0x4
sound 0x9
pause 0x10
playsong 0x13B 0x0
applymovement MOVE_PLAYER 0x82D5A3C
waitmovement 0x5
applymovement 0x5 0x82D5A3F
waitmovement 0xFF
textcolor 0x0
msgbox 0x82DD25D MSG_NORMAL '"[rival]: ¡Hey! ¡[player]!\nSígueme..."
applymovement 0x5 0x82D5A43
waitmovement 0xFF
applymovement MOVE_PLAYER 0x82D5A56
waitmovement 0x5
msgbox 0x82DD2A1 MSG_NORMAL '"[rival]: Pues vale, es aqui...\p¿Q..."
applymovement 0x5 0x82D5A6B
waitmovement 0x5
applymovement MOVE_PLAYER 0x82D5A70
waitmovement 0x5
warp 0x8 0x1 0x0 0x4 0x109
nop1

'---------
' Strings
'---------
#org 0x2DD1AE
= FEGIO: Vale, [player], [rival], voy a la\nTORRE POKéMON a hacer unos\ltrámites.\p[rival], si se aburren, vayan a CIUDAD\nAZULONA, allí hay varias cosas con\lque entretenerse.\pPues bien, me voy.

#org 0x2DD25D
= [rival]: ¡Hey! ¡[player]!\nSígueme.\pConozco un lugar donde no te\naburrirás...

#org 0x2DD2A1
= [rival]: Pues vale, es aqui...\p¿Que, no me digas que te da miedo\nentrar?.\p¿No que eras muy valiente?.\p¡Pues entra!.


'-----------
' Movements
'-----------
#org 0x2D5A33
#raw 0x1 'Face Up
#raw 0xFE 'End of Movements

#org 0x2D5A36
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x60 'Hide
#raw 0x11 'Step Up (Normal)
#raw 0xFE 'End of Movements

#org 0x2D5A3C
#raw 0x3 'Face Right
#raw 0xFE 'End of Movements

#org 0x2D5A3F
#raw 0x12 'Step Left (Normal)
#raw 0x4A 'Face Player
#raw 0xFE 'End of Movements

#org 0x2D5A43
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x3 'Face Right
#raw 0xFE 'End of Movements

#org 0x2D5A56
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x11 'Step Up (Normal)
#raw 0x3 'Face Right
#raw 0x2 'Face Left
#raw 0xFE 'End of Movements

#org 0x2D5A6B
#raw 0x10 'Step Down (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x22 'Step on the Spot Up (Normal)
#raw 0xFE 'End of Movements

#org 0x2D5A70
#raw 0x11 'Step Up (Normal)
#raw 0x4F 'Jump Up
#raw 0x60 'Hide
#raw 0xFE 'End of Movements


La flag que utilice es 4096 tanto en map script como en el script en sí, y el script de gatillo tiene la variable de 40F1 y los minis utilizados del mapa tambien tienen el people ID con 4096.
Si pudieran ayudarme daría mil gracias :D
#1
JolouRocsas 26275
tan solo tienes que poner al inicio o fin de tu script este comando.
Setvar 0xnº de la variable usada en el script de nivel 0x un valor mas alto que el que le has asignado al script
Y eso es todo si lo haces bien el script no debería ejecutarse mas porque por ejemplo si a tu variable le diste de valor 0
para que se ejecutara con esto lo que harías es cambiárselo ha 1 y pues al no tener el mismo valor que tu le diste no se activara el script.
PD: Para desactivar scripts de gatillo se usa el mismo comando.
#2
Jonouchi~ 27699
Uff que rollo, he puesto el setvar al final con la var 40F1, para ser mas exactos, pasa que justo al entrar al mapa donde está el script aparecen nuevamente los sprites usados y se ejecuta el script, he incluso cambiado las variables por 40FE, puesto que me aparecia "magicamente" en el map script
#3
Tito Sayer301 26309
que los minis usados vuelvan a aparecer no me parece ninguna anomalia rara, me gustaria saber de donde has sacado que ese numero de flag, pues que yo sepa no existe.

Usa de la 500 a la 700 de momento, en el macrotutorial de Javi4315 vienen el resto.

El resto, no lo he entendido, pero vamos que teniendo el checkflag 4000 y tantos ese, pasara como con los minis, no funcionara


EDITO: Después de hablar con el por privado, conseguimos arreglar el fallo, se trataba del típico fallo al hacer scripts de nivel con el #raw word 0xFFFF.


Como ya está arreglado, cierro el tema!