Registrarse

[RH - Scripting] Pregunta/respuesta rápida

Estado
Cerrado para nuevas respuestas.
Respuesta: Consultorio de dudas de Scripts

Muchas gracias a ambos!
Hollow, no habia intentado a ver el script de Corte, así que lo checkaré.
Gracias Sceptile y Hollow por la respuesta! :3
 

AlanVenator

Usuario Inusual
re: Consultorio de dudas de Scripting

Estoy haciendo un script bastante largo que tiene importancia en mi historia, un evento vamos. El caso es que tienes un trainerbattle y quiero arreglar bugs para cuando pierdes. Cuando pierdes pues obviamente te lleva al ultimo healingplace que has guardado, el problema es que se me ha bugeado el healingplace inicial, en vez de llevarte a la casa del prota te lleva al mapa 0 del banco de mapa 0. Entonces mi primera duda es: si se pueden cambiar los healingpoints al banco de mapa que tu quieras y si hay alguna herramienta para eso, he estado mirando pero parece que no hay nada, se con con un editor hexadecimal se pueden cambiar pero me da cosilla toquetear eso.

He intentado hacer un script para que cuando quieras se repita el combate, pero no funciona, parece que justo despues del wildbattle si pierdes se ejecuta lo que te lleva al ultimo CP guardado, he probado este script:
...
goto @combate
end


#org @combate
wildbattle 0x53 0x4 0x0
compare LASTRESULT 0x2 <- mira lo que ha pasado en el combate, si la var es igual a 2, significa que has perdido el combate
if 0x1 goto @combate
...
 

Javi4315

Babyface
Miembro de honor
Respuesta: Re: Consultorio de dudas de Scripts

Estoy haciendo un script bastante largo que tiene importancia en mi historia, un evento vamos. El caso es que tienes un trainerbattle y quiero arreglar bugs para cuando pierdes. Cuando pierdes pues obviamente te lleva al ultimo healingplace que has guardado, el problema es que se me ha bugeado el healingplace inicial, en vez de llevarte a la casa del prota te lleva al mapa 0 del banco de mapa 0. Entonces mi primera duda es: si se pueden cambiar los healingpoints al banco de mapa que tu quieras y si hay alguna herramienta para eso, he estado mirando pero parece que no hay nada, se con con un editor hexadecimal se pueden cambiar pero me da cosilla toquetear eso.

He intentado hacer un script para que cuando quieras se repita el combate, pero no funciona, parece que justo despues del wildbattle si pierdes se ejecuta lo que te lleva al ultimo CP guardado, he probado este script:
...
goto @combate
end


#org @combate
wildbattle 0x53 0x4 0x0
compare LASTRESULT 0x2 <- mira lo que ha pasado en el combate, si la var es igual a 2, significa que has perdido el combate
if 0x1 goto @combate
...
El primer SHP es el 0x1. A lo mejor estás poniendo el 0x0 y por eso te manda a ese mapa. Respecto a cambiarlos, sí existe una herramienta que desarrolló no hace mucho un usuario súper simpático de esta comunidad: http://whackahack.com/foro/t-27847/flight-and-heal-position-editor-fhpe

Respecto a lo segundo, no es posible continuar después de perder una batalla. O mejor dicho, no es posible hacerlo a menos que edites la rutina del comando en cuestión. La única que de manera original te permite hacerlo es la de la primera lucha con el tutorial de Oak.
 

Guilly Alpha

It's eleven o'clock
Respuesta: Consultorio de dudas de Scripts

Tengo un script de nivel en el que hay un setmaptile, en el tile original lo tengo puesto para que no se pueda pasar, pero cuando se ejecuta el setmaptile deja pasar, aunque en el script tengo puesto tambien que no se pueda pasar.
el setmaptile es este
Código:
setmaptile 0x2 0xE 0x6 0x0
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

Tengo un script de nivel en el que hay un setmaptile, en el tile original lo tengo puesto para que no se pueda pasar, pero cuando se ejecuta el setmaptile deja pasar, aunque en el script tengo puesto tambien que no se pueda pasar.
el setmaptile es este
Código:
setmaptile 0x2 0xE 0x6 0x0
Diría que en el último parámetro, para que no se pueda pasar, hay que poner 0x1.
 

AlanVenator

Usuario Inusual
re: Consultorio de dudas de Scripting

setmaptile 0x(X Coordinate) 0x(Y Coordinate) 0x(Tile No.) 0x(Movement Permission.)

Como te dice javi tienes que ponerlo al final como 0x1
 

Neodanix

El mejor Nuv de todos ;^)
Respuesta: Consultorio de dudas de Scripts

alguien sabe que script tendria que poner para hacer en un applymovement habra una puerta y entre en un warp?
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

alguien sabe que script tendria que poner para hacer en un applymovement habra una puerta y entre en un warp?
Un applymovement para ponerte delante de la puerta, un setdooropened para abrirla, otro applymovemnet para ponerte sobre la puerta (como si fueras a entrar), un sonido de "warp" (creo recordar que era el sound 0x9, pero no te lo puedo decir con seguridad ahora mismo), un hidesprite para ocultar al personaje y un setdoorclosed para cerrar la puerta.

Si se trata del jugador, pues entonces abres la puerta, te pones sobre ella y un warp normal.
 

Neodanix

El mejor Nuv de todos ;^)
Respuesta: Consultorio de dudas de Scripts

muchas gracias, aunque como no sabia al final lo quite pero ahora dudo en volver a ponerlo
 

Fenrir

Lobo nórdico
Respuesta: Consultorio de dudas de Scripts

Hola, buenas, me he estado peleando estos últimos días con un script "sencillo" en el que cuando pisas una baldosa aparece un rocket, camina hacia la derecha hasta ti, te habla, te da un Zangoose (que debería de ser shiny, pero eso ya es muy complicado para mí), se despide y se va.

Pues bien, coloco el script de gatillo y no ocurre nada, como si no lo hubiese puesto.

Éste es el código, si alguien me pudiera solucionar el problema se lo agradecería mucho. Igual es una tontería o igual está todo mal jajaja

#dynamic 0x800000
#org @start
checkflag 0x2101
if 0x1 goto @snippet1
setvar 0x8003 0x01
showsprite 0x0
applymovement 0x0 @move1
waitmovement 0x0
msgbox @String1 MSG_NORMAL '"Hemos recuperado a tu Zangoose.\nT..."
givepokemon 0x14F 0xC 0x0 0x0 0x0 0x0
fanfare 0x101
preparemsg @String2 '"¡[player] obtuvo un Zangoose!"
waitmsg
waitfanfare
bufferpokemon 0x0 0x14F
msgbox @String3 MSG_YESNO '"¿Quieres darle un mote a tu\n[buff..."
compare LASTRESULT 0x0
if 0x1 goto @snippet2
call @snippet3
msgbox @String4 MSG_NORMAL '"Adiós..."
fadescreen 0x1
hidesprite 0x8
fadescreen 0x0
setflag 0x2101
releaseall
end

'---------------
#org @snippet1
release
end

'---------------
#org @snippet2
setflag 0x263
release
end

'---------------
#org @snippet3
fadescreen 0x1
special 0x166
waitstate
return


'---------
' Strings
'---------
#org @String1
= Hemos recuperado a tu Zangoose.\nTómalo...

#org @String2
= ¡[player] obtuvo un Zangoose!

#org @String3
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @String4
= Adiós...


'-----------
' Movements
'-----------
#org @move1
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements
#org @sino
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @snippet44
setflag 0x263
release
end

#org @snippet55
fadescreen 0x1
special 0x166
waitstate
return
 

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: Consultorio de dudas de Scripts

Hola, buenas, me he estado peleando estos últimos días con un script "sencillo" en el que cuando pisas una baldosa aparece un rocket, camina hacia la derecha hasta ti, te habla, te da un Zangoose (que debería de ser shiny, pero eso ya es muy complicado para mí), se despide y se va.

Pues bien, coloco el script de gatillo y no ocurre nada, como si no lo hubiese puesto.

Éste es el código, si alguien me pudiera solucionar el problema se lo agradecería mucho. Igual es una tontería o igual está todo mal jajaja

#dynamic 0x800000
#org @start
checkflag 0x2101
if 0x1 goto @snippet1
setvar 0x8003 0x01
showsprite 0x0
applymovement 0x0 @move1
waitmovement 0x0
msgbox @String1 MSG_NORMAL '"Hemos recuperado a tu Zangoose.\nT..."
givepokemon 0x14F 0xC 0x0 0x0 0x0 0x0
fanfare 0x101
preparemsg @String2 '"¡[player] obtuvo un Zangoose!"
waitmsg
waitfanfare
bufferpokemon 0x0 0x14F
msgbox @String3 MSG_YESNO '"¿Quieres darle un mote a tu\n[buff..."
compare LASTRESULT 0x0
if 0x1 goto @snippet2
call @snippet3
msgbox @String4 MSG_NORMAL '"Adiós..."
fadescreen 0x1
hidesprite 0x8
fadescreen 0x0
setflag 0x2101
releaseall
end

'---------------
#org @snippet1
release
end

'---------------
#org @snippet2
setflag 0x263
release
end

'---------------
#org @snippet3
fadescreen 0x1
special 0x166
waitstate
return


'---------
' Strings
'---------
#org @String1
= Hemos recuperado a tu Zangoose.\nTómalo...

#org @String2
= ¡[player] obtuvo un Zangoose!

#org @String3
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @String4
= Adiós...


'-----------
' Movements
'-----------
#org @move1
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements
#org @sino
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @snippet44
setflag 0x263
release
end

#org @snippet55
fadescreen 0x1
special 0x166
waitstate
return
Veamos, te comento un par de cosas.

Lo primero, para mover le mini, debes fijarte en el nº de gente, no en el nº de evento.


Después, los punteros no pueden tener espacios.


Otra cosa más, para mover un mini con applymovement, ese mini debe de estar dentro de el rango de visión + un bloque, si esta más lejos, no se mueve.

Lo de que te lo den shiny es muy, muy fácil, en el foro hay un tutorial.

Que más, bien, a ver, para usar hidesprite o showsprite, tienes que usar una flag la cual debes asignar al mini en cuestión.
Un mini con su flag activada es invisible y uno con la flag desactivada es visible, luego debes usar hidesprite y activar la flag o showsprite y desactivarla.



Y bueno, así por encima no veo más cosas, luego lo reviso que no tengo mucho tiempo...
 

Fenrir

Lobo nórdico
Respuesta: Consultorio de dudas de Scripts

Muchas gracias, Dani_SR_17, de momento tenía mal todo lo que me dijiste (a parte de lo de los punteros, que ya se ve) el mini lo puse creo que dos o tres bloques más allá del campo de visión, no le coloqué la ID con la flag y lo hice con el número de evento y no con el de persona. Corrijo esos errores y si me da más problemas ya lo comentaré por aquí.
------------------------------------------------------------------------------------------------------------------------
Ya realicé los cambios. Sigue sin activarse cuando piso la baldosa donde coloqué el script. Sin embargo me aparece el Rocket. Hablo con él, y sale todo el evento, movimientos incluidos (me atraviesa y todo para llegar hasta la posición que tenía que llegar) Desaparece y todo bien, aunque el 14F no era Zangoose, pero bueno, eso será fácil de cambiar. Ahora mi pregunta es: ¿cómo hago para que cuando pise la dichosa baldosa, el evento se active?

#dynamic 0x800000
'---------------
#org @start
checkflag 0x200
if 0x1 goto @snippet1
checkflag 0x2102
showsprite 0x1
applymovement 0x1 @move1
waitmovement 0x0
msgbox @String1 MSG_NORMAL '"Hemos recuperado a tu Zangoose.\nT..."
givepokemon 0x14F 0xC 0x0 0x0 0x0 0x0
fanfare 0x101
preparemsg @String2 '"¡[player] obtuvo un Zangoose!"
waitmsg
waitfanfare
bufferpokemon 0x0 0x14F
msgbox @String3 MSG_YESNO '"¿Quieres darle un mote a tu\n[buff..."
compare LASTRESULT 0x0
if 0x1 goto @snippet2
call @snippet3
msgbox @String4 MSG_NORMAL '"Adiós..."
fadescreen 0x1
hidesprite 0x1
fadescreen 0x0
setflag 0x2102
setflag 0x200
releaseall
end

'---------------
#org @snippet1
release
end

'---------------
#org @snippet2
setflag 0x263
release
end

'---------------
#org @snippet3
fadescreen 0x1
special 0x166
waitstate
return


'---------
' Strings
'---------
#org @String1
= Hemos recuperado a tu Zangoose.\nTómalo...

#org @String2
= ¡[player] obtuvo un Zangoose!

#org @String3
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @String4
= Adiós...


'-----------
' Movements
'-----------
#org @move1
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements

P.D.: Los punteros están juntos, al subirlos no se por qué me salen naranjas, subrayados y se me separa el número, pero están juntos. Así que no creo que ése sea el problema.
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

Muchas gracias, Dani_SR_17, de momento tenía mal todo lo que me dijiste (a parte de lo de los punteros, que ya se ve) el mini lo puse creo que dos o tres bloques más allá del campo de visión, no le coloqué la ID con la flag y lo hice con el número de evento y no con el de persona. Corrijo esos errores y si me da más problemas ya lo comentaré por aquí.
------------------------------------------------------------------------------------------------------------------------
Ya realicé los cambios. Sigue sin activarse cuando piso la baldosa donde coloqué el script. Sin embargo me aparece el Rocket. Hablo con él, y sale todo el evento, movimientos incluidos (me atraviesa y todo para llegar hasta la posición que tenía que llegar) Desaparece y todo bien, aunque el 14F no era Zangoose, pero bueno, eso será fácil de cambiar. Ahora mi pregunta es: ¿cómo hago para que cuando pise la dichosa baldosa, el evento se active?

#dynamic 0x800000
'---------------
#org @start
checkflag 0x200
if 0x1 goto @snippet1
checkflag 0x2102
showsprite 0x1
applymovement 0x1 @move1
waitmovement 0x0
msgbox @String1 MSG_NORMAL '"Hemos recuperado a tu Zangoose.\nT..."
givepokemon 0x14F 0xC 0x0 0x0 0x0 0x0
fanfare 0x101
preparemsg @String2 '"¡[player] obtuvo un Zangoose!"
waitmsg
waitfanfare
bufferpokemon 0x0 0x14F
msgbox @String3 MSG_YESNO '"¿Quieres darle un mote a tu\n[buff..."
compare LASTRESULT 0x0
if 0x1 goto @snippet2
call @snippet3
msgbox @String4 MSG_NORMAL '"Adiós..."
fadescreen 0x1
hidesprite 0x1
fadescreen 0x0
setflag 0x2102
setflag 0x200
releaseall
end

'---------------
#org @snippet1
release
end

'---------------
#org @snippet2
setflag 0x263
release
end

'---------------
#org @snippet3
fadescreen 0x1
special 0x166
waitstate
return


'---------
' Strings
'---------
#org @String1
= Hemos recuperado a tu Zangoose.\nTómalo...

#org @String2
= ¡[player] obtuvo un Zangoose!

#org @String3
= ¿Quieres darle un mote a tu\n[buffer1]?

#org @String4
= Adiós...


'-----------
' Movements
'-----------
#org @move1
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements

P.D.: Los punteros están juntos, al subirlos no se por qué me salen naranjas, subrayados y se me separa el número, pero están juntos. Así que no creo que ése sea el problema.
¿Se trata de un script de gatillo? Porque si es eso seguramente no lo tengas bien configurado.
¿Has puesto la variable y el valor en la configuración?
 

Fenrir

Lobo nórdico
Respuesta: Consultorio de dudas de Scripts

Sí, es un script de gatillo. No sé qué poner en el valor de la variable, igual es eso lo que me lo fastidia todo. Tengo el mini y el script con esta configuración.
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

Sí, es un script de gatillo. No sé qué poner en el valor de la variable, igual es eso lo que me lo fastidia todo. Tengo el mini y el script con esta configuración.
Hum... Prueba a escoger las variables desde la 7FFF hacia abajo. Quizás la 4050 no sea válida. Mira a ver.
 

Master_Trainer

Usuario mítico
Respuesta: Consultorio de dudas de Scripts

Yo tengo una duda que me carcome el alma desde hace mucho tiempo, es la siguiente.

1ro:¿Puedo utilizar XSE para hacer scripts en GBC y en NDS tambien? o hay alguna Herramienta aparte para hacer script en esas plataformas?

2do: Aveces cuando hago un script en el XSE todo bien, lo compilo, lo guardo y lo vuelvo a abrir envez del script me salen algunos de los siguientes comandos

loadpointer
nop

Mi duda es: Debere actualizar el XSE o es que algo estoy asiendo mal?

PD: Los Scripts me salen asi tanto si los hago con Dynamic y/o de la forma antigua con #org 0x8464318.
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

Yo tengo una duda que me carcome el alma desde hace mucho tiempo, es la siguiente.

1ro:¿Puedo utilizar XSE para hacer scripts en GBC y en NDS tambien? o hay alguna Herramienta aparte para hacer script en esas plataformas?

2do: Aveces cuando hago un script en el XSE todo bien, lo compilo, lo guardo y lo vuelvo a abrir envez del script me salen algunos de los siguientes comandos

loadpointer
nop

Mi duda es: Debere actualizar el XSE o es que algo estoy asiendo mal?

PD: Los Scripts me salen asi tanto si los hago con Dynamic y/o de la forma antigua con #org 0x8464318.
1. No. Si no me equivoco, puedes hacer scripts para GBC con PKSV. Para NDS ya no estoy muy puesto xD

2. Eso es porque pones cosas mal y, por tanto, se compila mal. Así que sí, debes bajarte la versión actualizada de XSE, ya que comprueba que todo esté bien puesto antes de compilar y el riesgo de compilar cosas raras es muchísimo menor.
 

Fenrir

Lobo nórdico
Respuesta: Consultorio de dudas de Scripts

Javi4315♪;258019 dijo:
Hum... Prueba a escoger las variables desde la 7FFF hacia abajo. Quizás la 4050 no sea válida. Mira a ver.
Sí, ya me salió, puse la 7FFF y todo perfecto. Muchas gracias ^^
 

OmgBo2

Mega-Swampert prooooo
Respuesta: Consultorio de dudas de Scripts

Hola, ayer estuve toqueteando un poco el script, hice un script de habladuria pero al asignarselo a un mini y probarlo en un emulador, el mini no aparece donde lo he puesto, sino que aparece en otro sitio, y al hablarle ni se gira a mi ni me habla ni me dice nada.

#dynamic 0x800000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
release
end

#org @frase
= Hola
 

Javi4315

Babyface
Miembro de honor
Respuesta: Consultorio de dudas de Scripts

Hola, ayer estuve toqueteando un poco el script, hice un script de habladuria pero al asignarselo a un mini y probarlo en un emulador, el mini no aparece donde lo he puesto, sino que aparece en otro sitio, y al hablarle ni se gira a mi ni me habla ni me dice nada.

#dynamic 0x800000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
release
end

#org @frase
= Hola
Seguramente tengas la versión antigua de XSE, bájate la más reciente o, en su defecto, utiliza la forma antigua de msgbox:

Versión nueva dijo:
msgbox @frase 0x6
Versión antigua dijo:
msgbox @frase
callstd 0x6
Sobre el problema de que se mueve el mini, seguramente sea un script de nivel (muy probablemente de tipo 03) con un movesprite (comando usado para mover a un mini en el mapa). Ve al cabezal del mapa en cuestión en Advance Map y elimina los scripts de nivel que sean inncesarios (seguramente todos).
 
Estado
Cerrado para nuevas respuestas.
Arriba