Lo estuve mirando y funciona con la variable 0x8004
En el equipo tienes 6 pokémons (del 0x0 al 0x5), cuando usas un givepokemon éste se pone último, por lo que para obtener su casilla usas el comando: "countpokemon" (0x0 a 0x6) y le restas uno a la variable para tener el valor en su casilla.
En realidad no es tan complicado, sino que es usar un poco de lógica y matemática. Aquí te dejo un ejemplo:
...
countpokemon ' Almacena en 0x800D (LASTRESULT) la cantidad de pokes que tienes
compare LASTRESULT 0x6 ' Si ya tenemos 6 pokémons en el equipo lo mandará al PC
if 0x2 call @EnviarAlPC ' es decir, el script continuará en @EnviarAlPC
givepokemon 25 10 0x0 0x0 0x0 0x0 ' damos el pokemon que queremos
copyvar LASTRESULT 0x8004 'Copiamos el valor de LASTRESULT (Dado por countpokémon)
subvar 0x4050 0x1 ' Restamos 1 al valor copiado en 0x4050 para que nos dé el número
' del pokemon en la party (Éste paso solo si NO es el primer pokémon que recibiremos) (En cuyo caso YA sabemos que será el 0x0)
fadescreen 0x1 'Realizamos la llamada al Special, el fadescreen es estético, el
special 0x9E 'waitstate es obligatorio
waitstate
...
(Para los amantes de ahorrar espacio, en FR, el offset 0x1A74EB es un offset comodín hecho para cada vez que se va a poner un mote)
Espero que quede claro, sino, me avisas