8298-GBA_|_Scripting_|_Como_hacer_scripts_XSE_+_Todos_los_scripts_\[19%]
#0
RogellParadox~ 13353
Sí, decidí hacer eso porque muchos aún no conocen todos los scripts, y creo que eso los ayudará mucho en la construcion
por hora, no está completo...(13%), pero al longo del año tiempo voy actualizando hasta llegar a todos los scripts:
algunos aquí:::
nop - hace absolutamente nada
nop1 - hace absolutamente nada
end - finaliza la ejecución de un script
return - vuelve al comando que le llamó
call - continua el script en un otro offset, puede ser retomado tambiem
goto - continua la ejecución en un otro punto
if - si la ultima conparacion retorna a un certo valor, se salta a otro script
if2 - version de llamada del comando if
jumpstd - salta para una funcion built-in
callstd - llama una funcion built-in
jumpstdif - salta para una funcion built-in, version condicional
callstdif - llama una funcion built-in, version condiciona
jumpram - salta para una alocacion de RAM estandárd, ejecutando el script en él almacenado
killscript - "asesina" el script y reinicia la RAM
setbyte - determina 0x2039288 + 6C pra el valor del byte especificado
loadpointer - carga un pointer en scripts RAM, entonces otros comandos pueden usarlos
setbyte2 - determina un banco de memoria para el valor del byte especificado
writebytetooffset - Determina el byte de un determinado offset para un determinado valor
lock - trava el movimiento del personaje


1-El inicio del script
Empezemos, entonces:
'-----------------------
#org 0xEjemploDeOffset

todo enpeza con eso :awesome:
En Ejemplo de Offset, le ponemos e offset que estamos usando... así que si usas, por ejemplo, el 200036, vas a poner:
'-----------------------
#org 0x200036


lock: como han visto, el lock trava el jugador. es usado cuando se pasa alguno script o cuando están hablando, y no se quer que tu puedas moverte el protagonista...

'-----------------------
#org 0x200036
lock


Ok... y como hago para que despues el personaje pueda moverse????
lo ponemos al
'-----------------------
#org 0x200036
lock
..........
release


y le finalizamos con un belo end:
'-----------------------
#org 0x200036
lock
..........
release
end


esa es la base principal de cada script, una vez de que tiene que tener al menos el inicio y fin.

Pasemos ahora para la Parte 2::

2-Scripts de conversación
Cuando un personajejito está hablando contigo, se puede ver eso:


vamos hacer uno?? empecemos:
'-----------------------
#org 0x200036
lock
msgbox 0x8162183 '"Aquí quedará mi texto."
release
end


como pueden veer, el comando msgbox tambien neesita de un offset, en
este caso, el 162183.
Nota importantísima: siempre, en un script que llama otro o otra funcion que tambien dependa de un script, se pone el "8" antes, perceban:


'-----------------------
#org 0x200036
lock
msgbox 0x8162183 '"Aquí quedará mi texto."
release
end


cuanto al texto, no te preocupes en ponerlo ahí... despues de compilar el script, lo editaremos más tarde.
ok, y ahora, que tal cerrar la msgbox??
no sabes como hacer?? ora, usaremos este script
'-----------------------
#org 0x200036
lock
msgbox 0x8162183 '"Aquí quedará mi texto."
callstd 0x6
release
end


el callstd es un script que llama a diversos tipos (0x1, 0x2) y, ni todos funcionan, los que funcionan hacen cosas distintas, que veremos más adelante...
si me recuerdo bien, el callstd 0x6 cierra la caja de texto. la 0x4 no la cierra (eso para que si viene otro texto).
____________________________________
lo que el script significa:
Estoy en el offset 200036
voy a travar el personaje
voy abrir una caja de mensaje deciendo el valor del offset 162183
voy llamar el std 6
voy retomar el movimiento del personaje
adiós!
____________________________________
Iniciado por Script listo y compilado

'-----------------------
#org 0x200036
lock
msgbox 0x8162183 '"Aquí quedará mi texto."
callstd 0x6
release
end

'---------
' Strings
'---------
#org 0x162183
= Aquí quedará mi texto.


Nota: En la parte en negrito, no se pone el "8" antes del offset.

2.2-Comandos extras, colores y etc.

Bueno, como han podido veer, es eso, el texto quedará en la seccion Strings. Pasaremos ahora para la parte de la paragrafacion. Veamos:

Ese es un escenario de la hack de Sergio, Pokemon Naranja.
Como pueden veer, hay dos lineas en la textbox. Esto es lo maximo permitido.
Entonces, que hacer para que salga con delimitacion??
Facil, vamos a por él:
'-----------------------
#org 0x200036
lock
msgbox 0x8162183 '"Aquí quedará mi texto, aunque sea..."
callstd 0x6
release
end

'---------
' Strings
'---------
#org 0x162183
= Aquí quedará mi texto, aunque sea largo!\nEste es el límite, creo yo...\pAhora ya estoy en otra línea...Grande,no?\nBien, nos vamos, hasta luego.


Como viran, usamos dos comandos para hacer eso: \p y \n
A seguir las características de cada uno:
\p:Salta dos líneas. Como el límite es dos, no verás mas las dos líneas de arriba.
\n:Salta de la línea de arriba para la de bajo.


Iniciado por Ejemplo del imagene de arriba

'---------
' Strings
'---------
#org 0x162183
= Você é um treinador POKéMON, não é?\nPor favor, tem que me ajudar.