qna_rpg
Thread Id: 10712
Thread Name: Duda con creación de script
#0
enanogm 17687
Tengo una duda. estuve buscando información sobre el lenguaje RGSS y la creación de scripts. me di cuenta de que comparte muchas cosas con Java, lo que me resulta práctico ya que lo estoy aprendiendo (como la idea de clases). En fin, estoy creando un script para un sistema nuevo en mi juego y, para ello, necesito saber como hago, desde el mismo script, para saber qué cursor se presiona??

me explico. Necesito hacer algo que te aparezca en pantalla la opción de cambiar un número. Para darme a entender: necesito el mismo sistema que tiene el PokeMart para cuando vamos y compramos un objeto o ítem, aparece una ventanita en la que podemos elegir la Cantidad de objetos de ese tipo queremos. Justo eso es lo que quiero, lo demás no me interesa, quiero eso de incrementar un numerito y luego guardarlo en una variable.

Capás piensen que la solución es copiar la parte del script de pokemart que hace esa ventanita (que es el método pbChooseNumber); pero estuve intentando y salen muchos errores.

entonces, me gustaría saber cómo hago para obtener o saber qué cursor se presiona para poder incre o decrementar un numero, al estilo pokemart.

Espero alguien pueda entender el problema.

Espero que no me haya equivocado de lugar, porque estoy casi seguro de haber buscado bien.

Saludos cordiales
#1
Rafa 0
Te da error porque lo estás utilizando en otro script y esa función está creada en el script del Mart.
En tu script, en vez de pbChooseNumber debes poner PokemonMartScene.pbChooseNumber
#2
enanogm 17687
Ok, algo me sirvió, pero ahora me sale otro problema. Cuando llamo el script me sale este error:

Exception: RuntimeError
Message: Script error within event 40, map 57 (Ciudad Cantere):
Exception: NameError
Message: (eval):1:in `pbExecuteScript'undefined local variable or method `pbDepositar' for #<Interpreter:0x36ef8c0>
***Full script:
pbDepositar

Interpreter:239:in `pbExecuteScript'
Interpreter:1583:in `eval'
Interpreter:239:in `pbExecuteScript'
Interpreter:1583:in `command_355'
Interpreter:492:in `execute_command'
Interpreter:191:in `update'
Interpreter:104:in `loop'
Interpreter:196:in `update'
Scene_Map:96:in `update'
Scene_Map:94:in `loop'

Interpreter:274:in `pbExecuteScript'
Interpreter:1583:in `command_355'
Interpreter:492:in `execute_command'
Interpreter:191:in `update'
Interpreter:104:in `loop'
Interpreter:196:in `update'
Scene_Map:96:in `update'
Scene_Map:94:in `loop'
Scene_Map:107:in `update'
Scene_Map:63:in `main'

duda: tengo que agregar este script a algún lado? es decir, si hay que agregarlo en alguna base de datos o algo así en los que especifique los nombres y parámetros de los metodos en los scripts
#3
Rafa 0
¿Tu script se llama pbDepositar? O sea, class pbDepositar, si es así, en un Llamar Script debes de poner:

pbDepositar.new
#4
enanogm 17687
el script es class PokemonBank y el metodo es def pbDepositar

¿Sabés cuál es el problema? me parece que yo estoy llamando al pbChooseNumber y les estoy pasando parámetros incorrectos. Según entiendo, le tengo que pasar un texto, un item y un numero, que es el máximo. y yo solo le paso un texto y un maximo, ningún item. Pero es que no necesito pasarle un item, ya que la unica transacción que hago es restar o sumar dinero del personaje.

Por eso yo pensaba que sería mejor hacerme un ChooseNumber propio, con otro nombre, exclusivo para el script. El problema es que no sé como tomar los botones presionados del teclado. Estuve mirando en el script Interpreter, en donde estan los Input para saber que tecla se presionó, pero no los entiendo...
#5
Rafa 0
Iniciado por enanogm

el script es class PokemonBank y el metodo es def pbDepositar

¿Sabés cuál es el problema? me parece que yo estoy llamando al pbChooseNumber y les estoy pasando parámetros incorrectos. Según entiendo, le tengo que pasar un texto, un item y un numero, que es el máximo. y yo solo le paso un texto y un maximo, ningún item. Pero es que no necesito pasarle un item, ya que la unica transacción que hago es restar o sumar dinero del personaje.

Por eso yo pensaba que sería mejor hacerme un ChooseNumber propio, con otro nombre, exclusivo para el script. El problema es que no sé como tomar los botones presionados del teclado. Estuve mirando en el script Interpreter, en donde estan los Input para saber que tecla se presionó, pero no los entiendo...


Pues pon PokemonBank.new, dentro debes poner el def initialize y dentro ya pues puedes poner que lea el pbDepositar, lo puedes hacer más o menos así:


class PokemonBank

def initialize
pbDepositar
end

def pbDepositar
...
...
...


Sobre lo de hacer un ChooseNumber propio, puedes copiar el def entero desde el PokemonMart y copiarlo en tu nuevo script, de esa forma podrías modificarlo sin afectar al PokemonMart.
#6
enanogm 17687
Iniciado por Rafael-animal

[QUOTE]Iniciado por enanogm

el script es class PokemonBank y el metodo es def pbDepositar

¿Sabés cuál es el problema? me parece que yo estoy llamando al pbChooseNumber y les estoy pasando parámetros incorrectos. Según entiendo, le tengo que pasar un texto, un item y un numero, que es el máximo. y yo solo le paso un texto y un maximo, ningún item. Pero es que no necesito pasarle un item, ya que la unica transacción que hago es restar o sumar dinero del personaje.

Por eso yo pensaba que sería mejor hacerme un ChooseNumber propio, con otro nombre, exclusivo para el script. El problema es que no sé como tomar los botones presionados del teclado. Estuve mirando en el script Interpreter, en donde estan los Input para saber que tecla se presionó, pero no los entiendo...


Pues pon PokemonBank.new, dentro debes poner el def initialize y dentro ya pues puedes poner que lea el pbDepositar, lo puedes hacer más o menos así:


class PokemonBank

def initialize
pbDepositar
end

def pbDepositar
...
...
...


Sobre lo de hacer un ChooseNumber propio, puedes copiar el def entero desde el PokemonMart y copiarlo en tu nuevo script, de esa forma podrías modificarlo sin afectar al PokemonMart.[/quote]


Muchas gracias por la paciencia y el interés!

voy a seguir intentado a ver que logro, y si llego a algo bien hecho, lo subo para que los demás también lo puedan aprovechar.
Si llego a hacerlo o no, estarás en los créditos, como tantos otros que estuvieron dispuestos a ayudarme desinteresadamente.

Saludos cordiales.

PD: Por favor, no cierren el tema que todavía no termino el script!....