Que feo es pascal, no? xD
Bueno, pues un comando que tome un número como argumento no podrá tomar un número de flag o de variable. Aún así, hay 2 cosas que puedes hacer:
1 - Constantes:
Ej. si solo quieres darle un nombre a un número mágico, puedes hacerlo:
#define VIEJA 25
applymovement VIEJA @lalala
(bueno, creo que se puede hacer en XSE, por lo menos en ASC y PKSV se puede)
2 - Script en RAM:
Escribes el script, lo compilas, guardas el código compilado, descubres en qué byte queda el valor que quieres modificar, y buscas el offset de una variable en RAM.
Se trata de escribir el script en RAM (en OFFSET_RAM), leer el valor de una variable del juego y ponerlo como argumento de nuestro comando en OFFSET_RAM+N (Donde N es el número de bytes des del principio del script hasta el argumento). Luego ejecutar el script de la RAM.
Un poco de código:
writebytetooffset OFFSET_RAM BYTE1
writebytetooffset OFFSET_RAM+1 BYTE2
writebytetooffset OFFSET_RAM+2 BYTE3
.
.
.
loadbytefrompointer BANCO OFFSET_VARIABLE
setfarbyte BANCO OFFSET_RAM+N
.
.
.
goto OFFSET_RAM
(seguro que se puede hacer mejor en ASM, pero es que yo de ARM se poquito)
Tenemos el problema de que no hay un comando writefarbytetooffset, pero usando un banco como punto intermedio debería funcionar.
Nunca he hecho nada con bancos, pero en teoría deberían funcionar como variables temporales para scripts. Supongo que el banco 1 serviría.
Por cierto, no se si loadbytefrompointer y setfarbyte se llaman así en XSE, pero son el comando 0x12 y 0x13 respectivamente.
Bueno, divertido, no? Me gustaría que alguien nos iluminara con algo mucho más bonito, pero esto debería funcionar.
(Si eso luego edito)