qna_rh
Thread Id: 25748
Thread Name: (Duda)(FR) ¿Por que se fusiona el texto?
#0
Jonouchi~ 27699
Hola a todos espero que esteis bien, pues, este error me ocurrio hace poco, pero es bastante raro, ya que simplemente traduje el script de cuando azul se enfrenta a ti por primera vez... en cuestion, este:


Como podeis ver, en el texto de derrota se fusiona con el texto de victoria y no sé por qué ocurre :(
Si me pudieran ayudar os daria millones de gracias
#1
Javi4315♪ 13374
Has repunteado mal o no has repunteado, por eso se fusionan. De todas formas, ¿Buscas los espacios con FSF? Porque deberías usar el dynamic, que ya te busca directamente el espacio y no hay tanto lío.
#2
Tito Sayer301 26309
Eso es porque te has pasado al traducir y has acabado sobreescribiendo el principio de la otra frase (lo que separa una de otra) y por lo cual, se fusionan, para arreglarlo, repuntea la frase entera, bueh como no se si me entenderas, seguro que al ver el script si.


pues copia y compila esto, hazme caso que no vas a ocupar mas espacio que la frase, el resto sera igual :)

#dynamic 0x800000

#org 0x1692F3
lockall
setvar 0x4002 0x2
goto 0x816930B

'---------------
#org 0x16930B
textcolor 0x0
playsong 0x13B 0x0
applymovement 0x8 0x81A75ED
waitmovement 0x0
applymovement MOVE_PLAYER 0x81A75E9
waitmovement 0x0
msgbox 0x818DDA4 MSG_KEEPOPEN '"[rival]: ¡[player] espera!\n¡Debem..."
closeonkeypress
applymovement 0x4 0x81A75F1
waitmovement 0x0
compare 0x4031 0x0
if 0x1 goto 0x81693D2
compare 0x4031 0x1
if 0x1 goto 0x816944D
compare 0x4031 0x2
if 0x1 goto 0x816935A
end

'---------------
#org 0x1693D2
compare 0x4002 0x1
if 0x1 goto 0x81693F4
compare 0x4002 0x2
if 0x1 goto 0x8169404
compare 0x4002 0x3
if 0x1 goto 0x8169414
end

'---------------
#org 0x16944D
compare 0x4002 0x1
if 0x1 goto 0x816946F
compare 0x4002 0x2
if 0x1 goto 0x816947F
compare 0x4002 0x3
if 0x1 goto 0x816948F
end

'---------------
#org 0x16935A
compare 0x4002 0x1
if 0x1 goto 0x816937C
compare 0x4002 0x2
if 0x1 goto 0x816938C
compare 0x4002 0x3
if 0x1 goto 0x816939C
end

'---------------
#org 0x1693F4
applymovement 0x8 0x8169438
waitmovement 0x0
goto 0x8169424

'---------------
#org 0x169404
applymovement 0x8 0x8169440
waitmovement 0x0
goto 0x8169424

'---------------
#org 0x169414
applymovement 0x8 0x8169447
waitmovement 0x0
goto 0x8169424

'---------------
#org 0x16946F
applymovement 0x8 0x81694B3
waitmovement 0x0
goto 0x816949F

'---------------
#org 0x16947F
applymovement 0x8 0x81694B9
waitmovement 0x0
goto 0x816949F

'---------------
#org 0x16948F
applymovement 0x8 0x81694BE
waitmovement 0x0
goto 0x816949F

'---------------
#org 0x16937C
applymovement 0x8 0x81693C0
waitmovement 0x0
goto 0x81693AC

'---------------
#org 0x16938C
applymovement 0x8 0x81693C7
waitmovement 0x0
goto 0x81693AC

'---------------
#org 0x16939C
applymovement 0x8 0x81693CD
waitmovement 0x0
goto 0x81693AC

'---------------
#org 0x169424
trainerbattle 0x9 0x148 0x3 0x818DDEA @frase
goto 0x81694C2

'---------------
#org 0x16949F
trainerbattle 0x9 0x147 0x3 0x818DDEA @frase
goto 0x81694C2

'---------------
#org 0x1693AC
trainerbattle 0x9 0x146 0x3 0x818DDEA @frase
goto 0x81694C2

'---------------
#org 0x1694C2
special 0x0
msgbox 0x818DE38 MSG_KEEPOPEN '"[rival]: ¡Bien!, ¡Abuelo, [player]..."
closeonkeypress
playsong 0x13C 0x0
compare 0x4002 0x1
if 0x1 call 0x8169504
compare 0x4002 0x2
if 0x1 call 0x8169516
compare 0x4002 0x3
if 0x1 call 0x8169528
hidesprite 0x8
sound 0x9
fadedefault
setvar 0x4055 0x4
setflag 0x258
releaseall
end

'---------------
#org 0x169504
applymovement 0x8 0x816953A
applymovement MOVE_PLAYER 0x8169553
waitmovement 0x8
return

'---------------
#org 0x169516
applymovement 0x8 0x816954A
applymovement MOVE_PLAYER 0x8169553
waitmovement 0x8
return

'---------------
#org 0x169528
applymovement 0x8 0x8169542
applymovement MOVE_PLAYER 0x8169559
waitmovement 0x8
return


'---------
' Strings
'---------
#org 0x18DDA4
= [rival]: ¡[player] espera!\n¡Debemos probar a nuestros POKéMON\len un COMBATE!.

#org 0x18DDEA
= ¡QUE! ¡Increíble, tu POKéMON es\nmejor que el mío

#org @frase
= [rival]: ¡Si! ¿A que soy el mejor?

#org 0x18DE38
= [rival]: ¡Bien!, ¡Abuelo, [player], me\niré a entrenar para fortalecer a\lmi POKéMON!\p¡Nos vemos!.


'-----------
' Movements
'-----------
#org 0x1A75ED
#raw 0x2D 'Face Down (Delayed)
#raw 0xFE 'End of Movements

#org 0x1A75E9
#raw 0x2E 'Face Up (Delayed)
#raw 0xFE 'End of Movements

#org 0x1A75F1
#raw 0x0 'Face Down
#raw 0xFE 'End of Movements

#org 0x169438
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x169440
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x169447
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1694B3
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1694B9
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1694BE
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1693C0
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1693C7
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x1693CD
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0x16953A
#raw 0x13 'Step Right (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x1B 'Delay4
#raw 0xFE 'End of Movements

#org 0x169553
#raw 0x1C 'Delay5
#raw 0x1B 'Delay4
#raw 0x30 'Face Right (Delayed)
#raw 0x1C 'Delay5
#raw 0x2D 'Face Down (Delayed)
#raw 0xFE 'End of Movements

#org 0x16954A
#raw 0x13 'Step Right (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x1B 'Delay4
#raw 0xFE 'End of Movements

#org 0x169542
#raw 0x12 'Step Left (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x10 'Step Down (Normal)
#raw 0x1B 'Delay4
#raw 0xFE 'End of Movements

#org 0x169559
#raw 0x1C 'Delay5
#raw 0x1B 'Delay4
#raw 0x2F 'Face Left (Delayed)
#raw 0x1C 'Delay5
#raw 0x2D 'Face Down (Delayed)
#raw 0xFE 'End of Movements
#3
eing 12479
Pero el dinamic es puta mierda...
Si, la vida es más comoda, pero no deja lugar a equivocación. Ya que te busca el espacio justo para ubicar los datos del script.
¿Que ocupas 80 bytes, y hay 80 bytes al principio del rom? Pues usalos, ya ves tu, están libres los 80..
Pero..¿Y que pasa si lo modifico una vez compilado? :O
Pues que sobreescribiras lo que hay debajo jaja porque te ha buscado el espacio justo. (Y una vez compilados, el dinamic desaparece...)

Por otro lado, se fusionan los textos porque los offsets de los textos están muy juntos.
Cada caracter del mensaje, es un byte. (Los espacios tambien se incluyen, y los saltos de linea/parrafo tambien..)
Así que.. deja espacio entre mensaje y mensaje y no te pasará eso.
Algo muy util es escribir los textos en el bloc de notas que te dice la cantidad de caracteres en esa linea, entonces pasalo a hex, sumale unos 30 bytes mas, y ahí tendrás los bytes necesarios para esa cadena de texto.

En fin, espero que lo hayas entendido, y si no cuando tengas más practica lo entenderás.
#4
Jonouchi~ 27699
Muchas gracias a todos, he podido solucionar la duda :D Podeís cerrar tema supongo :)
#5
Tito Sayer301 26309
Iniciado por eing
Pero el dinamic es puta mierda...
Si, la vida es más comoda, pero no deja lugar a equivocación. Ya que te busca el espacio justo para ubicar los datos del script.
¿Que ocupas 80 bytes, y hay 80 bytes al principio del rom? Pues usalos, ya ves tu, están libres los 80..
Pero..¿Y que pasa si lo modifico una vez compilado? :O
Pues que sobreescribiras lo que hay debajo jaja porque te ha buscado el espacio justo. (Y una vez compilados, el dinamic desaparece...)
.


Tengo muchisimo que discutir al respecto, es tan sencillo como borrar un par de comandos y hacer un call a lo que quieras añadir y en el script que quieras añadir, un return.


Sin mas que añadir, cierro tema :)