Registrarse

[RH - Scripting] Como hacer que te quiten un objeto y siga el script

Estado
Cerrado para nuevas respuestas.
¿Qué tendría que hacer por ejemplo si un NPC me pide 5 pociones?, si le das las pociones, estas se eliminan de los objetos y el script continúa de una forma, si no se las das conservas las pociones y el script continúa de otra forma, o con pokémon, si tienes cierto pokémon y lo regalas el script continúa de una forma pero si no lo haces continúa de otra forma. O que sin que tengas la necesidad de dar el objeto, con tenerlo ya continúe de una forma pero si no lo tienes de otra. ¿Cómo puedo hacer estas cosas? muchas gracias de antemano.
Edite: Acabo de ver la que existe el comando checkitem y removeitem, ¿Cuál sería este comando en pokémon?, y también en dinero se que existe checkmoney, ¿como sería el "removemoney"? Gracias otra vez :D
 
Última edición:

Eddy64

Usuario de oro
3 post al que te respondo hoy! jajajaja

Vamos a ver socio, te recomiendo muy encarecidamente que te veas la serie de Youtube que te puse en otro post porque asi entenderas mejor los comandos de los scripts, y si usas XSE para crear los scripts puedes pulsar "F1" para que te muestre una ventana con explicaciones de todos los comandos que admite (es muy util).

Bien, ahora vamos con la duda que planteas:

Para que el script continue de una forma u otra, necesitas definir las condiciones de ejecucion.. me explico:

¡¡¡ IMPORTANTE !!! : todos los valores han de ser en hexadecimal, es decir, si quieres que sea el numero 12, en Hexadecimal sera C. Puedes utulizar la calculadora de Windows en modo Programador para la conversion entre decimal y hexadecimal.. aunque tambien las hay en internet o con XSE (editor de scripts)!

Checkitem 0xNumero_de_objeto 0xCantidad_de_objeto
compare lastresult 0x1 'Guarda en compare lastresult( es lo mismo que poner la variable 0x800D) el resultado
if 0x1 goto @Si_tienes
goto @No_tienes
Esto comparara la cantidad de un determinado objeto, y si lo tienes seguira el camino de la etiqueta #org @Si_tienes, y por el contrario si no tienes seguira el camino de la otra etiqueta (si quieres hacerlo un poco mas reducido puedes quitar goto @No_tienes por lo que haria en esta etiqueta, ya que si no va a Si_tienes se supone que no se cumple la condicion).

La misma logica se aplica a los demas comandos (checkattack, checkmoney..), por lo que con la misma estructura puedes realizar diferentes operaciones en funcion de lo que quieras hacer.

Lo mismo ocurre con las flags que determinan por ejemplo si tienes una medallas u otras cosas, de la siguiente manera:

checkflag 0x34FF (no se si sera esta flag xD)
if 0x1 goto @tienes
goto @no_tienes
Y con los cuadros de texto de eleccion:

msgbox @preguntar 0x5
compare lastresult 0x1
if 0x1 goto @si "Has seleccionado SI
goto @no "Has seleccionado NO
Te dejo una muestra de lo que pides con las pociones (es un enlace a un GIF hecho por mi), y debajo el codigo del script utilizado.
La idea es que lo estudies y que lo tengas como ejemplo para hacer lo que tu quieras realizar :)

Cualquier otra duda no dudes en preguntar !

Un saludo!


GIF: https://media.giphy.com/media/TF6p0dhJO0vSX8uInO/giphy.gif

#dynamic 0x800000
#org @start
lock 'Bloquea al mini sprite para que no se mueva mientras te habla
faceplayer 'Hace que el mini sprite te mire a la cara, si no podria quedar mirando a un lado y tu hablandole a otro
msgbox @Preguntar 0x5 'Muestra mensaje de que si quieres cambiarlo una cantidad de un objeto con la opcion de SI o NO
compare lastresult 0x1 'Compara si la respuesta dada es SI
if 0x1 goto @Opcion_Si 'Si quiere darle esa cantidad del objeto
msgbox @Opcion_No 0x6 'No quiere darle dicha cantidad del objeto
goto @Fin


#org @Opcion_Si
checkitem 0xD 0x5 'Esto comprueba si tienes un item y dicha cantidad
compare lastresult 0x1
if 0x1 goto @Seguir 'Comprueba si el resultado es positivo
msgbox @No_tienes 0x6 'Muestra mensaje de que no tienes la cantidad requerida de ese objeto
goto @Fin

#org @Seguir
removeitem 0xD 0x5 'Esto quita la cantidad de items indicados, ha de ser la misma que la que se pide para que tenga logica, es decir, si pides 5 quita 5 no 10 xD
msgbox @Objeto_quitado 0x6 'Muestra mensaje de que se ha quitado X cantidad de X objeto

#org @Fin
release 'Desbloquea al mini sprite con el que hablaste
end 'Termina el script


#org @Preguntar
= ¡Hola [player]! ¿Me das 5\nPociones?



#org @Opcion_No
= ¡Oh valla, no quieres darmelo! :(

#org @No_tienes
= ¡Oh valla, no tienes suficiente\ncantidad para darme!

#org @Objeto_quitado
= ¡Muchas gracias por darme eso! :)
 
Estado
Cerrado para nuevas respuestas.
Arriba