Tutorial basico para hacer formas alternas

Autor original: Clara


1- Formas alternativa a lo Unown
Estas formas serían las más básicas de todas, son más de función estética y se podría aplicar para diferentes pokémon, para simular razas de la misma especie (como algunos animales)
Para hacer una de estas formas id al script Multiple_forms escribid esto:

Código:
MultipleForms.register(:NOMBREDELPOKEMON,{
"getFormOnCreation"=>proc{|pokemon|
  next rand(x)
}
})

Donde pone NOMBREDELPOKEMON ponéis el nombre del pokémon en mayúsculas y la x la sustituís por el número de formas que tendrá esa especie.
Ahora creáis el sprite del pokémon y lo insertáis en battlers con el nombre de: NUMERODELPOKEMON_NUMERODELAFORMA
(Obviamente no hay que poner las letras que he puesto ahí, son explicativas)
Y para el back se pondría casi lo mismo NUMERODELPOKEMONb_NUMERODELAFORMA

2- Formas distintas según el objeto.
Funcionarian de manera que si le das un objeto a un pokémon y este cambia su forma, stats, hab y/o tipo. (y obiamente sprite si queremos).
Lo primero de todo es poner esto.

Código:
MultipleForms.register(:NOMBRE DEL POKEMON,{
"getForm"=>proc{|pokemon|
  next 1 if isConst?(pokemon.item,PBItems,:ITEMQUEACTIVARALAFORMA)
  next 0
},

Ahora iremos poniendo los códigos siguientes dependiendo de lo que queramos que tenga esta forma:
NOTA: Si únicamente queremos que cabie el sprite no hace falta que pongamos estos códigos.
Para cambiar los stats ponemos esto:

Código:
"getBaseStats"=>proc{|pokemon|
  next [PS,ATAQUE,DEFENSA,VELOCIDAD,ATAQUEESPECIAL,DEFENSAESPECIAL] if pokemon.form==1
  next
},


Para cambiar los tipos ponemos esto:

Esto para cambiar el primer tipo:


Código:
"type1"=>proc{|pokemon|
  next getID(PBTypes,:TIPO) if pokemon.form==1
  next
},


Y esto para añadir o cambiar el tipo secundario que ya tiene:


Código:
"type2"=>proc{|pokemon|
  next getID(PBTypes,:TIPO) if pokemon.form==1
  next
},

Recordad poner el nombre del tipo en inglés y mayúsculas.

Para cambiar las habilidades usamos este código:

Código:
"ability"=>proc{|pokemon|
  next getID(PBAbilities,:NOMBREDELAHABILIDAD) if pokemon.form==1
  next
},


Ahora para finalizar la forma debemos poner únicamente:

Código:
})

Y ya tendríamos una nueva forma personalizada que se activa por ítem.
Si queréis que el pokémon pueda cambiar a más de 1 forma podéis copiar la line anterior a los next y cambiar el 1 del final por el número de otra de esas formas, y lo mejor es que podéis agregar cuantas queráis.
Ahora para añadir el sprite tenemos que llamar asi a la imagen:
Para el front: NUMERODELPOKEMON_1
Para el back: NUMERODELPOKEMONb_1
Si habéis metido más de una forma solo tendréis que poner el número de esta en lugar del 1.

3- Formas distintas si conocen cierto ataque (Estilo Keldeo)
Funcionarían de manera que si un Pokemon aprende cierto ataque este cambia su forma, algo similar a como lo hace keldeo.
Únicamente debemos usar este codigo.

Código:
MultipleForms.register(:NOMBRE DEL POKEMON,{
"getForm"=>proc{|pokemon|
  next 1 if pokemon.hasMove?(:NOMBRE DEL MOVIMIENTO)
  next 0
}
})
Ahora para añadir el sprite tenemos que llamar asi a la imagen:
Para el front: NUMERODELPOKEMON_1
Para el back: NUMERODELPOKEMONb_1

4- Formas distinta dentro de combate (Estilo Xerneas)
Esto es una chorrada pero a alguien le servirá digo yo, solo copiad este codigo y editar donde pone "NOMBRE DEL POKEMON":


Código:
MultipleForms.register(:NOMBRE DEL POKEMON,{
"getFormOnEnteringBattle"=>proc{|pokemon|
   next 1
}
})
Ahora para añadir el sprite tenemos que llamar así a la imagen:
Para el front: NUMERODELPOKEMON_1
Para el back: NUMERODELPOKEMONb_1

Comentarios