[RH - Scripting] Ayuda con un script


Like Tree4Gracias
  • 1 Post By Lunos
  • 1 Post By Lunos
  • 2 Post By Lunos
Tema cerrado
 
Herramientas Desplegado
  #1  
08/02/2019
Predeterminado Ayuda con un script
Hola necesito ayuda con un script.
Quiero que un personaje me regale la HM Streght solo se le muestro l'objeto clave TEA.

Ya hice el script giveitem por el TEA.
Como puedo hacer este script?

Gracias por ayudarme
  #2  
08/02/2019
Predeterminado Respuesta: Ayuda con un script
Podrías hacer el script así:

Código:
(script antes del checkeo)
checkitem 0x171 0x1
if 0x1 goto @tengote
(script en caso de no tener el té)

#org @tengote
giveitem 0x156 0x1
(resto de script)
  #3  
08/02/2019
Corazón Respuesta: Ayuda con un script
Dicho por darkeon75 Ver mensaje
Podrías hacer el script así:

Código:
(script antes del checkeo)
checkitem 0x171 0x1
if 0x1 goto @tengote
(script en caso de no tener el té)

#org @tengote
giveitem 0x156 0x1
(resto de script)
El comando checkitem no funciona como el checkflag, si no mas bien como los msgbox 0x5.
Se utiliza de la siguiente forma:
Código:
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @tengote
Dicho por Latenzo Ver mensaje
Hola necesito ayuda con un script.
Quiero que un personaje me regale la HM Streght solo se le muestro l'objeto clave TEA.

Ya hice el script giveitem por el TEA.
Como puedo hacer este script?

Gracias por ayudarme
Dicho eso, venia a sugerir lo mismo que @darkeon75.
Un checkitem que compruebe si el Jugador tiene 1 pieza del objeto "Té" y en base a eso dirijes tu script como te apetezca.
Gracias: Annatar
  #4  
08/02/2019
Predeterminado Respuesta: Ayuda con un script
Dicho por Lunos Ver mensaje
El comando checkitem no funciona como el checkflag, si no mas bien como los msgbox 0x5.
Se utiliza de la siguiente forma:
Código:
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @tengote
Dicho eso, venia a sugerir lo mismo que @darkeon75.
Un checkitem que compruebe si el Jugador tiene 1 pieza del objeto "Té" y en base a eso dirijes tu script como te apetezca.
Código:
#dynamic 0x800000
#org @start
msgbox @talk 0x2
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @medicine
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @talk
= I need to ask you a favour.\nInside this house there is a\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and asking someone for it?

#org @medicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Soy bastante nuevo con los script. Como hago en caso que no tenga el te(medicine)?
Este script tiene algunos fallos?
  #5  
08/02/2019
Corazón Respuesta: Ayuda con un script
Dicho por Latenzo Ver mensaje
Código:
#dynamic 0x800000
#org @start
msgbox @talk 0x2
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @medicine
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @talk
= I need to ask you a favour.\nInside this house there is a\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and asking someone for it?

#org @medicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Soy bastante nuevo con los script. Como hago en caso que no tenga el te(medicine)?
Este script tiene algunos fallos?
Si. Vos no podés dirigir partes de un script a un msgbox directamente. Ese script está mal escrito.
Parte por parte, lo que tu script está haciendo es:
1) Buscar una dirección libre donde insertar el script, apartir de la dirección 0x800000.
2) Le pide al juego que ejecute la linea de texto @talk
3) Comprueba si el Jugador tiene 1 pieza del Objeto 0x171
4) Comprueba si el resultado es positivo.
5) En caso de que lo sea, el script te dirije a @medicine que en tu caso es una linea de texto. Ahi hay un error. Lo que tenés que hacer es dirigir el script a una porción que contenga un comando msgbox que será el que active la linea de texto que quieras mostrar.
6) En caso de que el Jugador no tenga 1 pieza del Objeto 171, le estás dando una pieza del objeto 0x156.
7) Despues de eso le pediste al juego que tirase una pantalla en negro, la quitase, y luego terminase el script.

Debido a lo mencionado en el 5to punto, tu script no funcionará.
Aquí tienes la corrección, para que lo analices.
Código:
#dynamic 0x800000
#org @inicio
msgbox @talk 0x2
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @medicine
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @medicine
msgbox @obtainedmedicine 0x2
end

#org @talk
= I need to ask you a favour.\nInside this house there is an\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and ask someone for it?

#org @obtainedmedicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Por cierto, te marqué un par de errores ortográficos en #org @talk.
Gracias: Latenzo
  #6  
08/02/2019
Predeterminado Respuesta: Ayuda con un script
Dicho por Lunos Ver mensaje
Si. Vos no podés dirigir partes de un script a un msgbox directamente. Ese script está mal escrito.
Parte por parte, lo que tu script está haciendo es:
1) Buscar una dirección libre donde insertar el script, apartir de la dirección 0x800000.
2) Le pide al juego que ejecute la linea de texto @talk
3) Comprueba si el Jugador tiene 1 pieza del Objeto 0x171
4) Comprueba si el resultado es positivo.
5) En caso de que lo sea, el script te dirije a @medicine que en tu caso es una linea de texto. Ahi hay un error. Lo que tenés que hacer es dirigir el script a una porción que contenga un comando msgbox que será el que active la linea de texto que quieras mostrar.
6) En caso de que el Jugador no tenga 1 pieza del Objeto 171, le estás dando una pieza del objeto 0x156.
7) Despues de eso le pediste al juego que tirase una pantalla en negro, la quitase, y luego terminase el script.

Debido a lo mencionado en el 5to punto, tu script no funcionará.
Aquí tienes la corrección, para que lo analices.
Código:
#dynamic 0x800000
#org @inicio
msgbox @talk 0x2
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @medicine
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @medicine
msgbox @obtainedmedicine 0x2
end

#org @talk
= I need to ask you a favour.\nInside this house there is an\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and ask someone for it?

#org @obtainedmedicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Por cierto, te marqué un par de errores ortográficos en #org @talk.
Antes de todo muchas gracias por l'ayuda.
Soy bastante nuevo haciendo scripts y por ahora estoy usando herremientas de terceros por el "cuerpo" del script.

Segun tu mensaje yo en el punto 6 estoy dando mi hm6 streght?
Y gracias por marcarme los errores. Ya lo habia corregido mientras que estaba esperando una respuesta.
  #7  
09/02/2019
Corazón Respuesta: Ayuda con un script
Dicho por Latenzo Ver mensaje
Antes de todo muchas gracias por l'ayuda.
Soy bastante nuevo haciendo scripts y por ahora estoy usando herremientas de terceros por el "cuerpo" del script.

Segun tu mensaje yo en el punto 6 estoy dando mi hm6 streght?
Y gracias por marcarme los errores. Ya lo habia corregido mientras que estaba esperando una respuesta.
Eh, si, pero el tema es que tú estás dandole al jugador la HM04 Strength, si no tienen 1 pieza del objeto Té.

Para lo que vos querés hacer, este es el script que necesitás.
Código:
#dynamic 0x800000
#org @inicio
msgbox @talk 0x2
checkitem 0x171 0x1 // Comprueba si el Jugador tiene una pieza de Té.
compare LASTRESULT 0x1 // Comprueba si el resultado es positivo.
if 0x1 goto @medicine // Si lo es, lo lleva hasta la sección del script llamada @medicine.
end // Si no tiene una pieza de Té, termina el script aquí.

#org @medicine
msgbox @obtainedmedicine 0x2
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @talk
= I need to ask you a favour.\nInside this house there is an\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and ask someone for it?

#org @obtainedmedicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Ten en cuenta que siempre que el Jugador interactue con este NPC, el script hará que el jugador pase por el msgbox @talk, y luego lo llevará a #org @medicine si tiene 1 pieza de Té, incluso si él ya lo ha hecho.

Esto lo podés evitar de varias formas.
Mi sugerencia seria tomar una variable de uso libre (como por ejemplo 0x4013), darle un valor determinado (como por ejemplo 0x1) antes del end en #org medicine, y usar el comando "compare" al inicio del cuerpo principal del script.
Algo tal que asi:
Código:
#dynamic 0x800000
#org @inicio
checkitem 0x156 0x1 // Comprueba si el Jugador tiene la HM04 Strength.
compare LASTRESULT 0x1 // Comprueba si el resultado es positivo.
if 0x1 goto @done // Si lo es, lo vas a conducir a @done.
msgbox @talk 0x2 // Si no, mostrarás la linea de texto @talk.
checkitem 0x171 0x1 // Comprueba si el Jugador tiene una pieza de Té.
compare LASTRESULT 0x1 // Comprueba si el resultado es positivo.
if 0x1 goto @medicine // Si lo es, lo lleva hasta la sección del script llamada @medicine.
end // Si no tiene una pieza de Té, termina el script aquí.

#org @medicine
msgbox @obtainedmedicine 0x2
giveitem 0x156 0x1
fadescreen 0x1
fadescreen 0x0
end

#org @done
(aquí puedes añadir un msgbox con tu NPC agradeciendole de nuevo al jugador, o lo que se te cante.)
end

#org @talk
= I need to ask you a favour.\nInside this house there is an\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and ask someone for it?

#org @obtainedmedicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
Honestamente, por esta clase de cosas es que no puedo recomendar usar programas que escriban scripts de manera automatica. Vos no tenés control sobre el resultado.
En esencia, es el mismo problema generado por el uso de parches que carecen de documentación apropiada, y hacen modificaciones a tu ROM.
Gracias: Latenzo y kakarotto

Última edición por Lunos; 09/02/2019 a las 00:24
  #8  
09/02/2019
Predeterminado Respuesta: Ayuda con un script
@Lunos

#dynamic 0x74DF3C
#org @inicio
msgbox @talk 0x2
checkitem 0x171 0x1
compare LASTRESULT 0x1
if 0x1 goto @medicine
end

#org @medicine
msgbox @obtainedmedicine 0x2
fadescreen 0x1
hidesprite 0x12
giveitem 0x156 0x1 0x1
setflag 0x265
fadescreen 0x0
end

#org @talk
= I need to ask you a favour.\nInside this house there is an\pinjured POKéMON.\nI need a MEDICINE.\pCould you go inside the POKéPARK\nDEPOSIT and ask someone for it?

#org @obtainedmedicine
= Is this the MEDICINE?\nThank you so much.\pTake this, I'm sure that you'll\nneed it!
He logrado hacer funcionar todo asì...
Mas o menos creo que sea similar a lo que tu hiciste.
Todavia cuando la pantalla esta negra el "textbox" me dice: < [PLAYER] found...> y no received.

Honestamente, por esta clase de cosas es que no puedo recomendar usar programas que escriban scripts de manera automatica
Acabo de empenzar es por esto. Lo unico que hago es crearme un modelo de script y depues yo lo edito agregando lo que quiero. Mas alla no voy mas a necesitar lo programas de terceros

Última edición por Latenzo; 09/02/2019 a las 00:48
  #9  
10/02/2019
Predeterminado Respuesta: Ayuda con un script
Primero: ¿Lo que has hecho ya tiene el comportamiento esperado o quieres cambiarle alguna cosa y no sabes cómo? (Más allá de lo que te diré luego)

Dicho por Latenzo Ver mensaje
@Lunos
Todavia cuando la pantalla esta negra el "textbox" me dice: < [PLAYER] found...> y no received.
En cuanto a esto, busca la línea del giveitem:
giveitem 0x156 0x1 0x1
Y cambia ese último 0x1, déjalo así:
giveitem 0x156 1 0
Aclaro:
giveitem 0x156 0x1 0x0 = giveitem 0x156 1 0
¿Qué has hecho? Bueno, precisamente ese parámetro es el que controla si debe decirte que lo encontraste o que te lo dieron.
El valor 0 significa te lo dieron y el valor 1, lo encontraste.

Cualquier otra cosa que necesites, avísanos. ¡Un saludo!
VISCA CATALUNYA!
LLIBERTAT


"Lluitem pacíficament, perquè és l'essència de la llibertat. Dubtem com qualsevol persona, perquè és l'antídot a la temeritat. Parlem com a demòcrates, perquè és la clau de l'èxit. Confiem els uns amb els altres, perquè serà la derrota dels tirans"
  #10  
11/02/2019
Predeterminado Respuesta: Ayuda con un script
Dicho por EnamoratDeKatie Ver mensaje
Primero: ¿Lo que has hecho ya tiene el comportamiento esperado o quieres cambiarle alguna cosa y no sabes cómo? (Más allá de lo que te diré luego)



En cuanto a esto, busca la línea del giveitem:


Y cambia ese último 0x1, déjalo así:


Aclaro:


¿Qué has hecho? Bueno, precisamente ese parámetro es el que controla si debe decirte que lo encontraste o que te lo dieron.
El valor 0 significa te lo dieron y el valor 1, lo encontraste.

Cualquier otra cosa que necesites, avísanos. ¡Un saludo!
Gracias, si yo quiera que me lo dieran. Todavia al final lo dejè asì.
Tema cerrado

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 07:57.