Registrarse

Script al inicio del juego

Estado
Cerrado para nuevas respuestas.
Necesito activar un script de gatillo nada más aparecer en tu habitación al comienzo del juego, el cual está situado en el sitio donde aparece el mini del jugador, pero no se activa el script. Únicamente se activa si te quitas de ahí y pasas de nuevo por el script. Alguien sabe cómo hacerlo?
 

Rubire4

Usuario mítico
Es que para que se inicie un script en cuanto entras en un mapa no puedes usar los scripts corrientes, si no un script de nivel, mira como se usa en algun tutorial.
 
Re: Respuesta: Script al inicio del juego

Vale perfecto lo he conseguido. Solo tengo un problema. Nada más empiezo en la habitación me funciona perfectamente. Pero cuando salgo y me vuelvo a meter se fastidia y se me queda la pantalla en negro. Adjunto el código.

Código:
'---------------
#org 0x8001CB
lock
setvar 0x40FF 0x1
compare 0x40FF 0x1
if 0x1 goto 0x83E04B0
end

'---------------
#org 0x3E04B0
msgbox 0x88001E6 MSG_NORMAL '"[red_fr]Mamá: ¡[player], baja abaj..."
applymovement MOVE_PLAYER 0x8800210
waitmovement 0xFF
setvar 0x40FF 0x2
release
end


'---------
' Strings
'---------
#org 0x8001E6
= [red_fr]Mamá: ¡[player], baja abajo que\ntienes visitaÎÎ \n


'-----------
' Movements
'-----------
#org 0x800210
#raw 0xB 'Step Right (Very Slow)
#raw 0xB 'Step Right (Very Slow)
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements
 

Sayer301!

UnityLord!
Miembro de honor
esto tiene muy poco sentido, estas dandole al setvar un valor 1 antes de compararlo. Por lo que ¿Para que te sirve compararlo si justo antes le dices que es 1?
Habría que Var y que Value tienes puestos en la cabecera del advance map.

Si en value tienes puesto 0000, borra el primer setvar del script y luego en el segundo setvar cambialo por 0x1.

A ver no creo que te solucione mucho el problema, ya que el pantallazo en negro suele ser por algo mal configurado y si te funciona a la primera el script no debería ser. Pero bueno prueba y nos cuentas.
 
Ahora el script funciona pero cuando entras de nuevo en la habitacion se vuelve a ejecutar y yo quiero que solo se ejecute la prmera vez. Seguro que es la var que tengo puesta pero es que he probado de distintas maneras y no consigo que se actualice para que no se ejecute el código. Adjunto el código:
Código:
'---------------
#org 0x3B9760
addvar 0x4000 0x1
compare 0x4000 0x1
if 0x1 goto 0x8800073
end

'---------------
#org 0x800073
lock
applymovement MOVE_PLAYER 0x8800092
waitmovement 0xFF
setvar 0x4000 0x8
release
end


'-----------
' Movements
'-----------
#org 0x800092
#raw 0xB 'Step Right (Very Slow)
#raw 0xB 'Step Right (Very Slow)
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements
Ahora el script funciona pero cuando entras de nuevo en la habitacion se vuelve a ejecutar y yo quiero que solo se ejecute la prmera vez. Seguro que es la var que tengo puesta pero es que he probado de distintas maneras y no consigo que se actualice para que no se ejecute el código. Adjunto el código:
Código:
'---------------
#org 0x3B9760
addvar 0x4000 0x1
compare 0x4000 0x1
if 0x1 goto 0x8800073
end

'---------------
#org 0x800073
lock
applymovement MOVE_PLAYER 0x8800092
waitmovement 0xFF
setvar 0x4000 0x8
release
end


'-----------
' Movements
'-----------
#org 0x800092
#raw 0xB 'Step Right (Very Slow)
#raw 0xB 'Step Right (Very Slow)
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements
PD: Tengo el valor Value en el advancemap como 0000
 

BandeDollio

Extintor-Sama
Ahora el script funciona pero cuando entras de nuevo en la habitacion se vuelve a ejecutar y yo quiero que solo se ejecute la prmera vez. Seguro que es la var que tengo puesta pero es que he probado de distintas maneras y no consigo que se actualice para que no se ejecute el código. Adjunto el código:
Código:
'---------------
#org 0x3B9760
addvar 0x4000 0x1
compare 0x4000 0x1
if 0x1 goto 0x8800073
end

'---------------
#org 0x800073
lock
applymovement MOVE_PLAYER 0x8800092
waitmovement 0xFF
setvar 0x4000 0x8
release
end


'-----------
' Movements
'-----------
#org 0x800092
#raw 0xB 'Step Right (Very Slow)
#raw 0xB 'Step Right (Very Slow)
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements


PD: Tengo el valor Value en el advancemap como 0000
No entiendo a que viene la primera parte del código la verdad. Para que sumas 1 a la variable y luego lo comparas con 1?
De todas formas en un script de gatillo no se necesita ningún if para que se ejecute o no, ya que, en si mismo, ya es una condición.
Dicho esto lo único que se me ocurre es que uses variables desde 0x7000 a 0x7FFF.
 

Adke

weeeh
Prueba a ver así:
Código:
'---------------
#org 0x3B9760
compare 0x4000 0x1
if 0x1 goto 0x8800073
applymovement MOVE_PLAYER 0x8800092
waitmovement 0xFF
setvar 0x4000 0x1
end


'---------------
#org 0x800073
end


'-----------
' Movements
'-----------
#org 0x800092
#raw 0xB 'Step Right (Very Slow)
#raw 0xB 'Step Right (Very Slow)
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements
Usas mal la comparación de valores de una variable. Para que funcione bien tienes que poner la comparación siempre al principio y dependiendo de su valor que te lleve a un sitio o a otro.
Fíjate que aquí se compara si el valor de la variable es 1 y, si lo es, te lleva a la parte en la que solo hay un 'end'.
Si el valor no es 1, el script continúa por la parte del applymovement y mira que al final del script hay un 'setvar 0x4000 0x1' que es lo que hará que el script no se vuelva a repetir.
 
Estado
Cerrado para nuevas respuestas.
Arriba