Registrarse

Duda sobre scripting basico

Estado
Cerrado para nuevas respuestas.
He hecho esto: Un personaje bloquea un camino, y no te deja pasar asta que consigas una credencial; al conseguirla, el personaje se mueve y te deja pasar, pero el problema que tengo es que ahora cada vez que se le vuelve a hablar al personaje se ejecuta el movimiento y lo que quiero es que solo muestre el mensaje de "ya puedes pasar" pero sin que se vuelva a mover.
Se que debo poner una flag, pero no se donde :(
Este es mi script:
(la flag 201 se activa al conseguir la credencial :v)
Código:
#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x201
if 0x1 goto @si
msgbox @mensaje 0x6
release
end

#org @si
msgbox @mensaje2 0x6
applymovement 0x3 @movimiento
waitmovement 0x3
release
end

#org @mensaje
= Lo siento\nNo puedes pasar\lsin una credencial

#org @mensaje2
= Muy Bien\nPuedes Pasar

#org @movimiento
#raw 0x9 'Paso Arriba (normal)
#raw 0x9 'Paso Arriba (normal)
#raw 0x8 'Paso Abajo (normal)
#raw 0xFE 'Fin de los movimientos
¿me pueden ayudar?
lo se, soy noob...
 
M

Miembro eliminado 28262

Invitado
Cuando te entreguen dicha credencial activa la flag 0x201 que estas utilizando.
Debería bastar con eso.
Saludos y buenas vibras!! :cool:
 

Lunos

Enfrentando a La Organización
Miembro insignia
He hecho esto: Un personaje bloquea un camino, y no te deja pasar asta que consigas una credencial; al conseguirla, el personaje se mueve y te deja pasar, pero el problema que tengo es que ahora cada vez que se le vuelve a hablar al personaje se ejecuta el movimiento y lo que quiero es que solo muestre el mensaje de "ya puedes pasar" pero sin que se vuelva a mover.
Se que debo poner una flag, pero no se donde :(
Este es mi script:
(la flag 201 se activa al conseguir la credencial :v)
Código:
#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x201
if 0x1 goto @si
msgbox @mensaje 0x6
release
end

#org @si
msgbox @mensaje2 0x6
applymovement 0x3 @movimiento
waitmovement 0x3
release
end

#org @mensaje
= Lo siento\nNo puedes pasar\lsin una credencial

#org @mensaje2
= Muy Bien\nPuedes Pasar

#org @movimiento
#raw 0x9 'Paso Arriba (normal)
#raw 0x9 'Paso Arriba (normal)
#raw 0x8 'Paso Abajo (normal)
#raw 0xFE 'Fin de los movimientos
¿me pueden ayudar?
lo se, soy noob...
Código:
#dynamic 0x800000

#org @inicio
lock
faceplayer
[B][I]/Aqui va un checkflag 0xFlagVaciaUsadaEnElPointer@si/
/Aqui va un if 0x1 goto @puntero/[/I][/B]
checkflag 0x201
if 0x1 goto @si
msgbox @mensaje 0x6
release
end

#org @si
msgbox @mensaje2 0x6
applymovement 0x3 @movimiento
waitmovement 0x3
[B][I]/Aqui va un setflag 0xFlagVacia/[/I][/B]
release
end

#org @mensaje
= Lo siento\nNo puedes pasar\lsin una credencial

#org @mensaje2
= Muy Bien\nPuedes Pasar

#org @movimiento
#raw 0x9 'Paso Arriba (normal)
#raw 0x9 'Paso Arriba (normal)
#raw 0x8 'Paso Abajo (normal)
#raw 0xFE 'Fin de los movimientos

[B][I]#org @puntero
msgbox @1 0x6
release
end

#org @1
= Mensaje dando alusión a que el jugador ya puede pasar.[/I][/B]
EDITO: Corregido el orden de los dos checkflags.
 
Última edición:

Cheve

MoonLover~
Miembro de honor
Pero a ver chicos, que con todo eso ^ el mini se resetea cada vez que refresques el mapa igual en su posición.

Lo que debes hacer sería ésto:


#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x201
if 0x1 goto @si
checkflag 0x202
if 0x1 goto @yadejopasar
msgbox @mensaje 0x6
release
end

#org @si
msgbox @mensaje2 0x6
applymovement 0x3 @movimiento
waitmovement 0x3
movesprite2 0x3 0xCoordenada en X Despues de los movs 0xCordenada en Y despues de los movs
setflag 0x202
clearflag 0x201
release
end

#org @yadejopasar
msgbox @mensaje2 0x6
release
end

#org @mensaje
= Lo siento\nNo puedes pasar\lsin una credencial

#org @mensaje2
= Muy Bien\nPuedes Pasar

#org @movimiento
#raw 0x9 'Paso Arriba (normal)
#raw 0x9 'Paso Arriba (normal)
#raw 0x8 'Paso Abajo (normal)
#raw 0xFE 'Fin de los movimientos


#El comando mágico es el MoveSprite2

#La segunda flag que use (0x202) pasa ahora a representar a la credencial.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Pero a ver chicos, que con todo eso ^ el mini se resetea cada vez que refresques el mapa igual en su posición.

Lo que debes hacer sería ésto:


#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x201
if 0x1 goto @si
checkflag 0x202
if 0x1 goto @yadejopasar
msgbox @mensaje 0x6
release
end

#org @si
msgbox @mensaje2 0x6
applymovement 0x3 @movimiento
waitmovement 0x3
movesprite2 0x3 0xCoordenada en X Despues de los movs 0xCordenada en Y despues de los movs
setflag 0x202
clearflag 0x201
release
end

#org @yadejopasar
msgbox @mensaje2 0x6
release
end

#org @mensaje
= Lo siento\nNo puedes pasar\lsin una credencial

#org @mensaje2
= Muy Bien\nPuedes Pasar

#org @movimiento
#raw 0x9 'Paso Arriba (normal)
#raw 0x9 'Paso Arriba (normal)
#raw 0x8 'Paso Abajo (normal)
#raw 0xFE 'Fin de los movimientos


#El comando mágico es el MoveSprite2

#La segunda flag que use (0x202) pasa ahora a representar a la credencial.
Pues yo probé mi versión de nuevo y sin necesidad del movesprite2 funciona perfectisimamente.
De hecho, si en el PersonID del policia se pone la flag vacia que indiqué antes, va en el puntero @si, actuará igual que un hidesprite una vez que el NPC salga del rango de actividad que tiene el jugador.
(En mi prueba, tras dar 9 o 10 pasos pasado el NPC hacia el norte desde el punto donde estaba el NPC, se activó dicho efecto, por si merece la pena mencionarlo)

En mis pruebas:
-NPC1 activó la flag 0x201 [Credencial]
-NPC2 comprobó si el Jugador tenia dicha credencial:
*Al no tenerla mandó un msgbox diciendo que no la tenia.
*Al tenerla mandó un msgbox diciendo que ya podia pasar, se aplicó un applymovement y fin de la historia. Al interactuar con él de nuevo mandó el 3er mensaje que añadí en mi versión posteada arriba y al entrar de lleno en Ciudad Verde, pues mis pruebas ocurrieron en Ruta 1, el NPC desapareció.

¿Me estoy equivocando monumentalmente o fue eso lo que pidió el autor del post?

Eso si, yo puse el orden de los checkflags de forma incorrecta, el checkflag de la flag vacia en mi versión debe ir antes del checkflag 0x201, por lo demas, repito, funciona como debe funcionar.
Este es el script exacto, adaptado a mi propia prueba y eso, por si las moscas.
 

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
Pues yo probé mi versión de nuevo y sin necesidad del movesprite2 funciona perfectisimamente.
De hecho, si en el PersonID del policia se pone la flag vacia que indiqué antes, va en el puntero @si, actuará igual que un hidesprite una vez que el NPC salga del rango de actividad que tiene el jugador.
(En mi prueba, tras dar 9 o 10 pasos pasado el NPC hacia el norte desde el punto donde estaba el NPC, se activó dicho efecto, por si merece la pena mencionarlo)

En mis pruebas:
-NPC1 activó la flag 0x201 [Credencial]
-NPC2 comprobó si el Jugador tenia dicha credencial:
*Al no tenerla mandó un msgbox diciendo que no la tenia.
*Al tenerla mandó un msgbox diciendo que ya podia pasar, se aplicó un applymovement y fin de la historia. Al interactuar con él de nuevo mandó el 3er mensaje que añadí en mi versión posteada arriba y al entrar de lleno en Ciudad Verde, pues mis pruebas ocurrieron en Ruta 1, el NPC desapareció.

¿Me estoy equivocando monumentalmente o fue eso lo que pidió el autor del post?

Eso si, yo puse el orden de los checkflags de forma incorrecta, el checkflag de la flag vacia en mi versión debe ir antes del checkflag 0x201, por lo demas, repito, funciona como debe funcionar.
Este es el script exacto, adaptado a mi propia prueba y eso, por si las moscas.
Con tu script el mini vuelve a su lugar inicial cada vez que se recarga el mapa (lo cual es un gran problema si está tapando una puerta).
O bien, lo haces desaparecer cuando le asignas la flag.

El script de Cheve, en teoría, debería lograr que el mini cambie su posición y, sin importar cuántas veces salgas y vuelvas al mapa, se quedaría en su nueva posición.
Sin embargo, lo he probado y no he conseguido el dichoso efecto. A pesar del movesprite2, el mini vuelve a su lugar al recargar :S
¿Alguna idea, @Cheve_X ?
 

Cheve

MoonLover~
Miembro de honor
Con tu script el mini vuelve a su lugar inicial cada vez que se recarga el mapa (lo cual es un gran problema si está tapando una puerta).
O bien, lo haces desaparecer cuando le asignas la flag.

El script de Cheve, en teoría, debería lograr que el mini cambie su posición y, sin importar cuántas veces salgas y vuelvas al mapa, se quedaría en su nueva posición.
Sin embargo, lo he probado y no he conseguido el dichoso efecto. A pesar del movesprite2, el mini vuelve a su lugar al recargar :S
¿Alguna idea, @Cheve_X ?
¡Damn! xD

Pues Script 0x3 de nivel tal que así:

#org @ScriptDeNivel
checkflag 0x202
if 0x1 call @Mover
end

'---------------
#org @Mover
movesprite2 0x2 0xA 0x2
return

y el de quien controla el paso:

#dynamic 0x800000

'---------------
#org @start
lock
faceplayer
checkflag 0x201
if 0x1 goto @snippet1
checkflag 0x202
if 0x1 goto @snippet2
msgbox @String1 MSG_NORMAL '"Lo siento\nNo puedes pasar\lsin un..."
release
end

'---------------
#org @snippet1
msgbox @String2 MSG_NORMAL '"Muy Bien\nPuedes Pasar"
applymovement 0x2 @move1
waitmovement 0x2
setflag 0x202
movesprite2 0x2 0xA 0x2
release
end

'---------------
#org @snippet2
msgbox @String2 MSG_NORMAL '"Muy Bien\nPuedes Pasar"
release
end


'---------
' Strings
'---------
#org @String1
= Lo siento\nNo puedes pasar\lsin una credencial

#org @String2
= Muy Bien\nPuedes Pasar


'-----------
' Movements
'-----------
#org @move1
#raw 0xA 'Step Left (Very Slow)
#raw 0xA 'Step Left (Very Slow)
#raw 0xA 'Step Left (Very Slow)
#raw 0xFE 'End of Movements


PD: Aparentemente el movesprite2 lo que hace es que no se refresque con el menu de pausa xD Aunque ahora no estoy nada seguro JAJA
 
Estado
Cerrado para nuevas respuestas.
Arriba