Re: Respuesta: Error con scripts no aparece el texto de obtención de objeto
Lunos dijo:
El hecho de que no le diese problemas al compilar el script significa que existe.
Curiosamente, sin dudas ese es el problema. Al hacer un script rapido con ese comando, noté que el NPC entrega un objeto (en mi caso fue un "??????").
En realidad no es curioso. Lo que me parece un tanto extraño es que a esta altura no se sepa cómo funciona un msgbox ni qué hacen los tipos 0 y 1. Por supuesto que no es culpa tuya ni de Zilver y mucho menos del chico que pregunta; más bien es de los tutoriales poco explicativos como el que hoy tenemos de referencia (ejémejémxabiejémejém).
Para aquellos que sean lo suficientemente viejos aquí, recordarán el tutorial de scripts de Ciro, vamos, con el que aprendimos todos antes de que xabi hiciera el suyo. Casualmente él sí explicaba todos los tipos de mensaje y cuándo usarlos.
Empecemos: El actual comando msgbox (XSE 1.1) es bastante pobre, en realidad es una macro que incluye 2 comandos de scripting. Primero un loadpointer que carga en la RAM el offset del texto a mostrar y luego un callstd (que recordarán quienes hayan usado XSE 1.0) que llama a la función predefinida que lo muestra en pantalla.
El parámetro (ese número que usamos en el XSE 1.1 como segundo parámetro del msgbox) es el índice de la función a llamar. Las funciones 0 y 1 corresponden a cuando te dan un objeto y cuando lo encuentras en el suelo respectivamente.
El comando giveitem es cuando lo usamos, ya que de nuevo es otro comando extraño como el msgbox que en realidad incluye más de uno. El tercer parámetro del comando.
Edit: Por cierto, olvidé mencionar que la función 0 además de mostrar el mensaje, te entrega el objeto. Pero claro, en este caso no había un objeto asignado Lunos, por eso te dio ese.
NO CUALQUIERA, SE TOMA LA MOLESTIA EN HACER SCRIPTS para otra persona, que no tiene las ganas en aprender....
NO es esa la forma de responderle a un usuario. No a todos nos son fáciles las mismas cosas ni aprendemos del mismo modo. Agradecería que la próxima vez dejes esa actitud de lado y no ensucies una respuesta más o menos decente.
Zilver ya te solucionó el problema (aunque en su script hay varios comandos innecesarios), pero quisiera agregar que el comando "if 0x1 goto @X" solo se usa tras comprobar el estado de una flag (checkflag) o tras comprobar el resultado de un msgbox 0x5 (Pregunta de Si/No).
Agrego: o al comparar el valor de una variable. En fin, cuando la lógica nos indica que necesitamos una estructura condicional.
Por cierto, ya que hablamos de lógica, quiero fomentar a que quienes quieran scriptear acudan a ella
permanentemente ya que es nuestra compañera esencial.
Bueno, espero haber aclarado el asunto y que esto sirva como un diagnóstico para cambiar el rumbo en los tutoriales, empecemos a explicar y a entender lo que hacemos en lugar de simplemente repetir qué escribir en el editor y hacerlo una y otra vez como si fuera verdad absoluta.
Cualquier otra duda que tengan, no teman consultarme