Registrarse

Mi script de gatillo no va bien.

Estado
Cerrado para nuevas respuestas.
Hola amigos scripters, yo se algo de scripts pero ahora quiero aprender scripts de gatillo, se lo que son y siguiendo un tuto de Javi de scripts de gatillo, he intentado hacer un script de gatillo facilito, pero al probarlo en el rom, me hace hace el movimiento, pero el tio salta encima del prota y me pone The Rom Image Has Been Crashed y no llega a realizarse el Msgbox, aquí te dejo el script.

Gracias por tu futura ayuda.

XSE 1.0.1 dijo:
'---------------
#org 0x800026
lock
faceplayer
checkflag 0x2002
if 0x1 goto 0x880004B
applymovement 0x2 0x880004E
applymovement MOVE_PLAYER 0x8800055
waitmovement 0x0
loadpointer 0x0 0x8800057 '"No puedes entrar aquí, lo siento,\..."
release
end

'---------------
#org 0x80004B
release
end


'---------
' Strings
'---------
#org 0x800057
= No puedes entrar aquí, lo siento,\nel Prof. Oak no está aquí, está\lhaciendo una investigación en la\lRuta 1, ve a buscarlo.


'-----------
' Movements
'-----------
#org 0x80004E
#raw 0x10 'Step Down (Normal)
#raw 0x3 'Face Right
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)

#org 0x800055
#raw 0x49 'Jump Facing Left (Right)

Por favor te lo pido, ayudame, aqui sale lo que puse en desconocido, var number y demás.

AdvanceMap 1.92 dijo:
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Bien, vayamos por partes. En primer lugar, aquí te dejo el script corregido:


'---------------
#org 0x800026
lock
faceplayer
checkflag 0x2002
if 0x1 goto 0x880004B
applymovement 0x2 0x880004E
applymovement MOVE_PLAYER 0x8800055
waitmovement 0x2
msgbox 0x8800057 0x6
release
end

'---------------
#org 0x80004B
release
end


'---------
' Strings
'---------
#org 0x800057
= No puedes entrar aquí, lo siento,\nel Prof. Oak no está aquí, está\lhaciendo una investigación en la\lRuta 1, ve a buscarlo.


'-----------
' Movements
'-----------
#org 0x80004E
#raw 0x10 'Step Down (Normal)
#raw 0x3 'Face Right
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE

#org 0x800055
#raw 0x49 'Jump Facing Left (Right)
#raw 0xFE

Bien, ahora te dejaré unas anotaciones:

1º Siempre debes poner #raw 0xFE al final de cada #raw que indica todos y cada uno de los movimientos del mini o los minis en cuestión.

2º Tengo la sensación de que el loadpointer puede ser el culpable del fallo (en parte, aunque está clarísimo que los applymovement paralizan el juego). Por esa misma razón, he preferido cambiártelo por un msgbox (mejor que no te compliques cuando no hay necesidad).

3º Un error muy común es la inercia de muchos scripters de poner waitmovement con asignación al mini 0 (0x0). ¡Pues no! ¿Qué es lo que pasa en tu script? Pues que, como es lógico, tu protagonista se mueve del todo y el otro personaje, no. ¿Solución? Repasarte de nuevo el comando waitmovement: waitmovement 0x(nº mini a esperar). En este caso, pon el nº del mini que tenga más movimientos a realizar.

4º Veo que malgastas flags para desactivar scripts de gatillo. No digo que no esté mal, pero es un método arcaico y poco eficiente (o como a mí me gusta llamarlo, "la caza con lanza", ya que es un método de la Edad de Piedra del Rom Hacking). En lugar de malgastar flags, ¿por qué no pruebas a usar el comando setvar y a especificar en el script de gatillo la variable y el valor a tener en cuenta para la activación de dicho script? Créeme, es más cómodo, puedes trabajar varias veces con la misma variable y, además, ahorras flags (que puedes emplear para hacer desaparecer minis, por ejemplo). Sobretodo no olvides esto, las variables no muerden.

Saludos.
 
Rey Boo dijo:
Bien, vayamos por partes. En primer lugar, aquí te dejo el script corregido:


'---------------
#org 0x800026
lock
faceplayer
checkflag 0x2002
if 0x1 goto 0x880004B
applymovement 0x2 0x880004E
applymovement MOVE_PLAYER 0x8800055
waitmovement 0x2
msgbox 0x8800057 0x6
release
end

'---------------
#org 0x80004B
release
end


'---------
' Strings
'---------
#org 0x800057
= No puedes entrar aquí, lo siento,\nel Prof. Oak no está aquí, está\lhaciendo una investigación en la\lRuta 1, ve a buscarlo.


'-----------
' Movements
'-----------
#org 0x80004E
#raw 0x10 'Step Down (Normal)
#raw 0x3 'Face Right
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE

#org 0x800055
#raw 0x49 'Jump Facing Left (Right)
#raw 0xFE

Bien, ahora te dejaré unas anotaciones:

1º Siempre debes poner #raw 0xFE al final de cada #raw que indica todos y cada uno de los movimientos del mini o los minis en cuestión.

2º Tengo la sensación de que el loadpointer puede ser el culpable del fallo (en parte, aunque está clarísimo que los applymovement paralizan el juego). Por esa misma razón, he preferido cambiártelo por un msgbox (mejor que no te compliques cuando no hay necesidad).

3º Un error muy común es la inercia de muchos scripters de poner waitmovement con asignación al mini 0 (0x0). ¡Pues no! ¿Qué es lo que pasa en tu script? Pues que, como es lógico, tu protagonista se mueve del todo y el otro personaje, no. ¿Solución? Repasarte de nuevo el comando waitmovement: waitmovement 0x(nº mini a esperar). En este caso, pon el nº del mini que tenga más movimientos a realizar.

4º Veo que malgastas flags para desactivar scripts de gatillo. No digo que no esté mal, pero es un método arcaico y poco eficiente (o como a mí me gusta llamarlo, "la caza con lanza", ya que es un método de la Edad de Piedra del Rom Hacking). En lugar de malgastar flags, ¿por qué no pruebas a usar el comando setvar y a especificar en el script de gatillo la variable y el valor a tener en cuenta para la activación de dicho script? Créeme, es más cómodo, puedes trabajar varias veces con la misma variable y, además, ahorras flags (que puedes emplear para hacer desaparecer minis, por ejemplo). Sobretodo no olvides esto, las variables no muerden.

Saludos.
Tienes razón en todo Rey, pero respecto a lo de la setvar, no se usarla, y sí estoy anticuadísimo, pero con la forma moderna me lío.

Thanks friend.
 
Estado
Cerrado para nuevas respuestas.
Arriba