qna_rh
Thread Id: 26026
Thread Name: Error de Script
#0
Albertodesu 27467
Necesito ayuda!!!!
Mi script no funciona y no se que hice mal llevo horas tratando de arreglarlo y aun no sirve.:s

'-----------------------
#org 0x8954E2
checkflag 0xBB8
if 0x1 goto 0x8895526
lock
setflag 0xBB8
applymovement MOVE_PLAYER 0x8895514
waitmovement 0x0
msgbox 0x8895520 '"'...."
callstd 0x4
applymovement 0x1 0x8895517
applymovement 0x2 0x889551A
applymovement 0x3 0xFE13551D
end

'-----------------------
#org 0x895526
end


'-----------
' Movements
'-----------
#org 0x895514
#raw 13 'Step Right (Normal)
#raw FE 'End of Movements

#org 0x895517
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x89551A
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements


'---------
' Strings
'---------
#org 0x895520
= '....


No entiendo que pasa, cada vez que paso por donde se debería activar el script el juego se traba y ya no responde lo dejo aquí por si me pueden ayudar o por si se dan cuenta de algo que yo no.
#1
Jonouchi~ 27699
En la segunda direccion esta vacia. Seguramente pasa que ese script se ejecute y al estar vacio no pasa nada o se traba. Si no lo vas a usar borralo.
Tambien no es necesario el callstd porque sino se repite el texto
espero te sirva
saludos ;)
edito. Me fije mejor y veo que era para la flag
se supone que 0x1 es si esta activada. Y siempre estan activadas
por lo que si pones if 0x1 goto.. Eso no se activara. Deberias poner if 0x1 goto (el primer org)
#2
Megascep_9 Kuchiki 28187
Bueno, lo primero que veo es que esa flag no es la correcta, tienes que usar una flag que esté libre, por ejemplo desde 0x200 hasta 0x2FF o desde el 0x500 hasta el 0x79F o desde la 0x1000 hasta, no recuerdo muy bien,creo que era hasta la 0x2000.

Segundo error, bueno esto no es un error sino un consejo y es que te descargues el XSE 1.1.1, es un poco mejor, me di cuenta que en el Msgbox 0x-------- pones el callstd esta abajo y eso es de la versión anterior.

Otro error es que no hay un waitmovement debajo del último applymovement, aunque nose si fuiste tu que lo quisiste así, pero te lo digo por si acaso :)

Oooootro error es........mentira solo bromeo XD.

Espero haberte ayudado

saludos
#3
Albertodesu 27467
Iniciado por Alexander---
En la segunda direccion esta vacia. Seguramente pasa que ese script se ejecute y al estar vacio no pasa nada o se traba. Si no lo vas a usar borralo.
Tambien no es necesario el callstd porque sino se repite el texto
espero te sirva
saludos ;)


Lo que pasa es que quiero que el script pase una vez y luego ya no mas, probe eliminandolo pero se volvio a trabar.
#4
G0LD_ZTHVARD0X! 27515
No soy un experto en usando xse (de hecho uso pksv) pero esta linea del applymovement no parece estar correcta:
applymovement 0x3 0xFE13551D
Posiblemente ese sea el problema, aunque no dices el problema en si.

EDIT: Ya aparecera el oraculo sayer y resolvera tu problema ^^
#5
Jonouchi~ 27699
Iniciado por Albertodesu
Lo que pasa es que quiero que el script pase una vez y luego ya no mas, probe eliminandolo pero se volvio a trabar.



Lo huboeses dicho antes jaja
pues para eso es tan simple que antes del release o luego de los applymovements poner el comando setvar si es un script de gatillo o nivel. Setvar 0x(variable) 0x(valor a asignar)
#6
Megascep_9 Kuchiki 28187
Bueno te diré lo mismo que mi compañero alexander...Pero con el script.

'-----------------------
#org 0x8954E2
checkflag 0x500
if 0x1 goto 0x8895526
lock
applymovement MOVE_PLAYER 0x8895514
waitmovement 0x0
msgbox 0x8895520 '"'...."
callstd 0x4
applymovement 0x1 0x8895517
applymovement 0x2 0x889551A
applymovement 0x3 0xFE13551D
setflag 0x500
release
end

'-----------------------
#org 0x895526
end


'-----------
' Movements
'-----------
#org 0x895514
#raw 13 'Step Right (Normal)
#raw FE 'End of Movements

#org 0x895517
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x89551A
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements


'---------
' Strings
'---------
#org 0x895520
= '....


Lo que esta en negrita es lo que hará lo que tu script no se repita.

Suerte.

PD: Cuando vuelvas a hacer otro evento, ya no utilizes la flag 0x500 porque no puedes repetir las flag si ya están usadas, usa la que le sigue, o sea 0x501 y hací suscesivamente
#7
Albertodesu 27467
Le quité el tema de las variables y de las flags y sigue trabandose al pisarlo.
Quedo asi.
'-----------------------
#org 0x8954E2
lock
applymovement MOVE_PLAYER 0x8895514
waitmovement 0x1
msgbox 0x8895520 '"'...."
callstd 0x4
applymovement 0x1 0x8895517
applymovement 0x2 0x889551A
applymovement 0x3 0x88955F5
waitmovement 0x1
release
end


'-----------
' Movements
'-----------
#org 0x895514
#raw 13 'Step Right (Normal)
#raw FE 'End of Movements

#org 0x895517
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x89551A
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x8955F5
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements


'---------
' Strings
'---------
#org 0x895520
= '....

#8
Megascep_9 Kuchiki 28187
¿Y como lo tienes en el Advance map?
Donde dice var number y var value...

Tienes que rellenar esos campos.
En var number tienes que poner una variable, puede ser 4000 y var value 0000 porque es la primera vez que lo utilizas.

Entonces, al script tienes que añadirle setvar 0x4000 0x1 antes del release.
Se verá así.

'-----------------------
#org 0x8954E2
lock
applymovement MOVE_PLAYER 0x8895514
waitmovement 0x1
msgbox 0x8895520 '"'...."
callstd 0x4
applymovement 0x1 0x8895517
applymovement 0x2 0x889551A
applymovement 0x3 0x88955F5
waitmovement 0x1
setvar 0x4000 0x1
release
end


'-----------
' Movements
'-----------
#org 0x895514
#raw 13 'Step Right (Normal)
#raw FE 'End of Movements

#org 0x895517
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x89551A
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x8955F5
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements


'---------
' Strings
'---------
#org 0x895520
= '....


Suerte
#9
Albertodesu 27467
Iniciado por Sceptile9
¿Y como lo tienes en el Advance map?
Donde dice var number y var value...

Tienes que rellenar esos campos.
En var number tienes que poner una variable, puede ser 4000 y var value 0000 porque es la primera vez que lo utilizas.

Entonces, al script tienes que añadirle setvar 0x4000 0x1 antes del release.
Se verá así.



Suerte


Mi problema es que desde el comienzo se traba, no que se repita y no pare de repetirse.
#10
Juaco 28439
Me pasa lo mismo , que se traba y mi codigo es una cosa parecida :



Intentando resolver tu problema (Soy un novato) pero en los tutoriales que he visto , siempre he visto que es waitmovement 0x0. No se si hay tipos diferentes o varía dependiendo de algo.

No entiendo la función del setvar en el script :/
#11
Albertodesu 27467
Gracias a todos, finalmente logre hacer que funcione el script. Gracias Alexander--- y Sceptile9 porque principalmente gracias a ustedes entendí que fallaba en mi script y como arreglarlo y ahora funciona perfectamente. Así quedo al final.

'---------------
#org 0x90030B
checkflag 0x500
if 0x1 goto 0x8800072
lock
applymovement MOVE_PLAYER 0x8723416
waitmovement 0x1
msgbox 0x872340E MSG_KEEPOPEN '"'...."
applymovement 0x1 0x8723419
applymovement 0x2 0x872341C
applymovement 0x3 0x8900344
waitmovement 0x1
setflag 0x500
release
end

'---------------
#org 0x800072
lock
countpokemon
release
end


'---------
' Strings
'---------
#org 0x72340E
= '....


'-----------
' Movements
'-----------
#org 0x723416
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements

#org 0x723419
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements

#org 0x72341C
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements

#org 0x900344
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements


Pueden cerrar el tema.
#12
Jonouchi~ 27699
Iniciado por Juaco
Me pasa lo mismo , que se traba y mi codigo es una cosa parecida :



Intentando resolver tu problema (Soy un novato) pero en los tutoriales que he visto , siempre he visto que es waitmovement 0x0. No se si hay tipos diferentes o varía dependiendo de algo.

No entiendo la función del setvar en el script :/


Pues. No se muy bien la utilidad de waitmivement 0x0, pero creo que sirve para qhe varios minis se muevan a la vez (sino correjidme)
Y amgi. La setvar es lo mismo que la setflag. A diferencia de que en la var se cambia un valir, es decir, utiliza condiciones
espero haberte ayudado :D
#13
Juaco 28439
En respuesta a Alexander-- : He intentado usar el setvar pero no me cambia nada :/ . Yo tengo entendido que el waitmovement se pone al final de todo movimiento o grupo de movimientos simplemente para que el sprite X o personaje no pueda moverse mientras el movimiento se lleve a cabo. Así lo entendí yo.

Yo no entiendo que está mal en mi codigo, porque según ese código el mío está bien :



Cambié el waitmovement 0x1, probé lo del setvar, pero sigue igual doy por hecho que son los movimientos.

Pensé que utilizaba la referencia incorrecta de personas, y por si acaso las nombré igual ya que en mi mapa no hay problema :



No se entonces si el hidesprite 0xpersonaje causa problemas, porque lo primero así importante que hace el script es eso... o el pause tenga un máximo de segundos o algo así...

Por otra parte en el código que escribió el autor de esta duda, pone un countpokemon que no le pasa a ninguna variable, igual no es lo que parece que significaría, pero ¿Por qué esa linea de código?

Gracias de antemano.

Intenté corregir los errores conforme a lo que indicaban en este hilo pero estoy rallado porque sigue bloqueandoseme...

He comprobado y no puede ser que use el mismo método de movimientos, ya que hago enlace al mismo offset de movimientos para cada applymovement, pero eso se puede hacer, porque dejando uno solo funciona...


#14
Tito Sayer301 26309
Iniciado por Juaco
En respuesta a Alexander-- : He intentado usar el setvar pero no me cambia nada :/ . Yo tengo entendido que el waitmovement se pone al final de todo movimiento o grupo de movimientos simplemente para que el sprite X o personaje no pueda moverse mientras el movimiento se lleve a cabo. Así lo entendí yo.

Yo no entiendo que está mal en mi codigo, porque según ese código el mío está bien :



Cambié el waitmovement 0x1, probé lo del setvar, pero sigue igual doy por hecho que son los movimientos.

Pensé que utilizaba la referencia incorrecta de personas, y por si acaso las nombré igual ya que en mi mapa no hay problema :



No se entonces si el hidesprite 0xpersonaje causa problemas, porque lo primero así importante que hace el script es eso... o el pause tenga un máximo de segundos o algo así...

Por otra parte en el código que escribió el autor de esta duda, pone un countpokemon que no le pasa a ninguna variable, igual no es lo que parece que significaría, pero ¿Por qué esa linea de código?

Gracias de antemano.

Intenté corregir los errores conforme a lo que indicaban en este hilo pero estoy rallado porque sigue bloqueandoseme...

He comprobado y no puede ser que use el mismo método de movimientos, ya que hago enlace al mismo offset de movimientos para cada applymovement, pero eso se puede hacer, porque dejando uno solo funciona...



Pero que?!?!?! Por favor que cada persona haga un tema para su duda, no metais vuestra duda en la de otro, va para ti [MENTION=28439]Juaco[/MENTION]

Como el problema del post princpal esta resuelto, cierro tema.
#15
Javi4315♪ 13374
Sólo quiero decir que el waitmovement sirve para detener la ejecución del script hasta que acabe de ejecutarse un applymovement para que éste se ejecute bien. Se utiliza waitmovement 0x(número del mini). Si pones 0x0, se entiende que espera automáticamente al final del movimiento, aunque lo mejor es que si se usan varios applys juntos, le pongas al waitmovement el número del mini que más movimientos tanga para evitar problemas.