Registrarse

[RH - Scripting] [ESCUELA DE SCRIPTS] dudas

Estado
Cerrado para nuevas respuestas.
Respuesta: [Escuela de scripts] DUDAS

Muestra el codigo por aquí y agranda la imagen porque no veo que error pone
Código:
#dynamic 0x800000

#org @start
faceplayer
lock
compare 0x403D 0x0
if 0x1 goto @pregunta
msgbox @textoultimo 0x6
release
end

#org @pregunta
faceplayer
lock
msgbox @texto1 0x5
compare lastresult 0x1
if 0x1 goto @si
if 0x5 goto @no
release
end

#org @si
checkgender
setvar 0x403D 0x1
compare 0x803D 0x1
if 0x0 goto @chico
if 0x1 goto @chica
end

#org @no
msgbox @textono 0x6
release
end

#org @chico
msgbox @textochico 0x6
release
end

#org @chica
msgbox @textochica 0x6
release
end

#org @texto1
= ¿Te gustaría saber tu género?

#org @textono
= Vale, vuelve cuando quieras\nsaberlo.

#org @textochico
= Vale... entonces eres... ¡Chico!

#org @textochica
= Vale... entonces eres... ¡Chica!

#org @textoultimo
= Ya te he dicho todo lo que tenías\nque saber. No me preguntes más.

 

Zeon

Haters gonna Hate.
Respuesta: [Escuela de scripts] DUDAS

Me paso justo lo mismo, prueba en el compare lastresult a poner 0x0 o algo asi, creo que por ahi estaba el error, en los 0x1 y tal

Ese 0x5 creo que es el fallo, creo, pon 0x0 y 0x1 , quita el 0x5
 
Respuesta: [Escuela de scripts] DUDAS

♦ZeØn♦;342434 dijo:
Me paso justo lo mismo, prueba en el compare lastresult a poner 0x0 o algo asi, creo que por ahi estaba el error, en los 0x1 y tal

Ese 0x5 creo que es el fallo, creo, pon 0x0 y 0x1 , quita el 0x5
Lo hago y me sigue dando el error...
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

Lo hago y me sigue dando el error...
Sustituye compare 0x803D 0x1 por compare lastresult 0x1
Te lo digo en el primer mensaje. la variable no es 803D, sino 800D, de todas formas pon lastresult y no te dará error nunca. Saludos
 

Zeon

Haters gonna Hate.
Respuesta: [Escuela de scripts] DUDAS

Cierto... Que tonto que fuí, a lo mejor te confundí con lo del 0x5, me acuerdo que me paso lo mismo, en vez de poner una variable normal, le añadí un cero de mas

Lo siento por la confusión si ha habido jejej
 

KevinXDE

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

@xabier2012, hola, tenía una duda (no se si podría haberlo posteado aquí, ya que no es de ninguna tarea si no más bien algo personal, pero como tiene algo que ver con el temario...)

Cuando explicaste las variables, nos dijiste que el lastresult sustituía la variable 800D, pero tambien lo hace con las que están alrededor de 8000, ¿no?

Si yo hiciese setvar 0x800D 0x1, sin poner lastresult, que manipularía exactamente, ¿el género? (Saber si es chico o chica). O la variable 800D puede tener varias funciones, dependiendo de que comandos hay antes? (checkgender, compare...)

Si las variables 8000-800D solo tienen una función, cualas son exactamente esas funciones? Al manipularlas puedo acabar jodiendo algo de la ROM?

La verdad es que yo siempre he usado el latresult pero tenía esas dudas. Exactmente lo pregunto porque estaba editando unas rutinas que llevaban la variable 8000, y al no saber si causaría algún tipo de error (ya que ya tienen su funcion en el juego), quería cambiarla por una var libre (4050 o por ahí)
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

Las variables que están alrededor de 8000 son variables que el sistema del juego tiene reservado para sus modificaciones.

Si tu modificas esa variable no ocurrirá nada en especial salvo que te pueda dar errores en scripts. Con el checkgender se le da un valor a la variable 800D y a partir de ahí ponemos nuestras condiciones. Si tu trabajas con la variable 800D, piensa que cuando utilices el checkgender volverá a cambiar el valor de la variable.

Si ambias el valor de esa variable manipulas la variable sin más. Y cuando nosotros utilizamos el checkgender manipulamos la variable.

Cuando usamos checkgender el juego es como si hiciera esto:

Código:
if (masculino==true){
   var 800D=0
} else {
   var 800D=1
}
Si utilizamos en comando countpokemon, nos pondrá el número de pokémons que tenemos en la variable 800D. Esto no significa que si le das un valor tu género cambie o pases a tener otra cantidad de pokemons.
@Tervaxx
 

KevinXDE

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

Las variables que están alrededor de 8000 son variables que el sistema del juego tiene reservado para sus modificaciones.

Si tu modificas esa variable no ocurrirá nada en especial salvo que te pueda dar errores en scripts. Con el checkgender se le da un valor a la variable 800D y a partir de ahí ponemos nuestras condiciones. Si tu trabajas con la variable 800D, piensa que cuando utilices el checkgender volverá a cambiar el valor de la variable.

Si ambias el valor de esa variable manipulas la variable sin más. Y cuando nosotros utilizamos el checkgender manipulamos la variable.

Cuando usamos checkgender el juego es como si hiciera esto:

Código:
if (masculino==true){
   var 800D=0
} else {
   var 800D=1
}
Si utilizamos en comando countpokemon, nos pondrá el número de pokémons que tenemos en la variable 800D. Esto no significa que si le das un valor tu género cambie o pases a tener otra cantidad de pokemons.
@Tervaxx
Entiendo, gracias por la respuesta!
 

rdoble

Gente legal... ¿o no?
Respuesta: [Escuela de scripts] DUDAS

Bueno, he intentado compilar el siguiente script:

Código:
#dynamic 0x800000

#org @inicio
lock
faceplayer
compare 0x4011 0x1
if 0x1 goto @weather
if 0x2 goto [MENTION=24590]Ran[/MENTION]dom
msgbox @textopotions 0x6
waitmsg
giveitem 0xD 0x5 Msg_obtain
setvar 0x4011 0x1
release
end

#org @weather
setweather 0x01
msgbox @textosol 0x6
waitmsg
doweather
setvar 0x4011 0x1
release
end

#org [MENTION=24590]Ran[/MENTION]dom
msgbox @textorandom 0x6
release
end

#org @textopotions
= Me acaba de abandonar mi único\npokémon, así que te regalo estas\lpociones.

#org @textosol
= Por lo menos llueve, es mi tiempo\npreferido...

#org @textorandom
= ...\nMejor no digo nada más.
El problema está en que al compilarlo me dice que hay error en la línea 11 (giveitem 0xD 0x5 Msg_obtain) y falta #define. He intentado también compilar scripts de algunos compañeros (para ver si era solo mi script) y me pasa lo mismo. ¿Me podríais ayudar, por favor?
 
Re: Respuesta: [Escuela de scripts] DUDAS

Bueno, he intentado compilar el siguiente script:

Código:
#dynamic 0x800000

#org @inicio
lock
faceplayer
compare 0x4011 0x1
if 0x1 goto @weather
if 0x2 goto  [MENTION=24590]Ran[/MENTION]dom
msgbox @textopotions 0x6
waitmsg
giveitem 0xD 0x5 Msg_obtain
setvar 0x4011 0x1
release
end

#org @weather
setweather 0x01
msgbox @textosol 0x6
waitmsg
doweather
setvar 0x4011 0x1
release
end

#org  [MENTION=24590]Ran[/MENTION]dom
msgbox @textorandom 0x6
release
end

#org @textopotions
= Me acaba de abandonar mi único\npokémon, así que te regalo estas\lpociones.

#org @textosol
= Por lo menos llueve, es mi tiempo\npreferido...

#org @textorandom
= ...\nMejor no digo nada más.
El problema está en que al compilarlo me dice que hay error en la línea 11 (giveitem 0xD 0x5 Msg_obtain) y falta #define. He intentado también compilar scripts de algunos compañeros (para ver si era solo mi script) y me pasa lo mismo. ¿Me podríais ayudar, por favor?

A simple vista, has puesto @Ran dom, ponlo junto, sin espacios y prueba a ver
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

@rdoble
Prueba a poner Msg_obtain así: MSG_OBTAIN
De todas formas, si te pasa con todos los scripts y no solo con ese concreto, es un defecto de la página del xse, por lo que tendrías que abrir una página nueva, copiar A MANO otra vez el código, y volver a probar. Me pasó algo parecido una vez y lo solucioné así
 

KevinXDE

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

@xabier2012, tengo una duda sobre el comando "waitmsg"

En la tarea de Metereología puse varios "lock" justo antes de estos porque el mini se movia cuando no quería. El comando waitmsg debe ir siempre después del msgbox o pueden ir comandos antes sin perder su función, como hice yo?

Por ejemplo: (en lugar de lock puede ir cualquier comando o varios de ellos)

msgbox @frase 0x2
lock
waitmsg

¿Sería correcto? Porque al poner el lock justo después del waitmsg NO me funcionaba como quería, pero de la manera que lo puse, sí. Solo que no se si el waitmsg está bien usarlo así, intercalando comandos entre el msgbox y él.
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

@xabier2012, tengo una duda sobre el comando "waitmsg"

En la tarea de Metereología puse varios "lock" justo antes de estos porque el mini se movia cuando no quería. El comando waitmsg debe ir siempre después del msgbox o pueden ir comandos antes sin perder su función, como hice yo?

Por ejemplo: (en lugar de lock puede ir cualquier comando o varios de ellos)

msgbox @frase 0x2
lock
waitmsg

¿Sería correcto? Porque al poner el lock justo después del waitmsg NO me funcionaba como quería, pero de la manera que lo puse, sí. Solo que no se si el waitmsg está bien usarlo así, intercalando comandos entre el msgbox y él.
Sí está bien usado. De hecho es común que entre un msgbox y un waitmsg se ponga algún applymovement o cualquier cosa. Desconozco si hay algún comando en especial que pudiera invalidar el waitmsg, pero para hacer scripts normales no hay problema en ponerlo así. Lo que sí me sorprendería, es que ciertos comandos invalidarán el lock y hubiera que volverlo a poner
 

KevinXDE

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

Sí está bien usado. De hecho es común que entre un msgbox y un waitmsg se ponga algún applymovement o cualquier cosa. Desconozco si hay algún comando en especial que pudiera invalidar el waitmsg, pero para hacer scripts normales no hay problema en ponerlo así. Lo que sí me sorprendería, es que ciertos comandos invalidarán el lock y hubiera que volverlo a poner
Seguramente eso es lo que me pasó en el script, que algún comando invalidó el lock que tenía al principio (quizás también me paso con el faceplayer de la tarea del checkgender). Por eso lo tuve que poner varias veces...

En fin, al menos ahora se que lo estoy usando bien. Gracias!
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

Seguramente eso es lo que me pasó en el script, que algún comando invalidó el lock que tenía al principio (quizás también me paso con el faceplayer de la tarea del checkgender). Por eso lo tuve que poner varias veces...

En fin, al menos ahora se que lo estoy usando bien. Gracias!
¿Qué versión XSE utilizas? Si es que utilizas XSE
 
Respuesta: [Escuela de scripts] DUDAS

A mi me da error: Error 13 "No coinciden los tipos" sobre la línea 11.
Falta #define
 

Xabier2012

Usuario mítico
Respuesta: [Escuela de scripts] DUDAS

A mi me da error: Error 13 "No coinciden los tipos" sobre la línea 11.
Falta #define
Lo dicho a rdoble.

"De todas formas, si te pasa con todos los scripts y no solo con ese concreto, es un defecto de la página del xse, por lo que tendrías que abrir una página nueva, copiar A MANO otra vez el código, y volver a probar. Me pasó algo parecido una vez y lo solucioné así"

Haz una prueba y en la misma página borra parte del script y déjalo con unos 8-9 líneas. Intenta compilar y si te da algún error tienes que hacer lo dicho arriba.
 

rdoble

Gente legal... ¿o no?
Respuesta: [Escuela de scripts] DUDAS

@rdoble
Prueba a poner Msg_obtain así: MSG_OBTAIN
De todas formas, si te pasa con todos los scripts y no solo con ese concreto, es un defecto de la página del xse, por lo que tendrías que abrir una página nueva, copiar A MANO otra vez el código, y volver a probar. Me pasó algo parecido una vez y lo solucioné así
He probado ambas opciones, y me sigue dando error :(
 
Estado
Cerrado para nuevas respuestas.
Arriba