Voici un tuto qui permet de faire en sorte que les pokémons puissent changer de forme (SHAYMIN, GIRATINA...)
Je vais le faire sur un cas concret : GIRATINA
Toutes les modifications à faire sont sur le script Pokemon_Custom.
1ère Etape : Graphisme.
Il faut les graphismes de la nouvelle forme. Il FAUT les nommer XXX_xx (XXX = ID du pokemon et xx = numero de la forme.)
2ème Etape : Script
Giratina change de forme si il tient l'orbe Platine, il faut ajouter derrière :
# -----------------------------------------------------------------
# Objet tenu, changement de forme
# -----------------------------------------------------------------
def item_hold=(item_id)
@item_hold = item_id
if name == "DEOXYS"
@form = 5 if item_id == 1
@form = 0 if item_id != 1
end
Ceci :
if name == "GIRATINA"
@form = 0 # Forme "Normale"
@form = 1 if item_id == 344 # Forme origine, ID objet Orbe Platine
statistic_refresh
end
@form est le numéro de la forme et item_id l'id de l'objet orbe platine
le statistic_refresh sert à regénérer les stat du pokémon, nous verrons cela plus tard
Il faut ensuite ajouter tout de suite derrière :
# --------------------------------------------------------------------
# Changement de Type
# --------------------------------------------------------------------
def type1
if name =="GIRATINA"
return 14 if @form == 0
return 14 if @form == 1
else
@type1
end
end
def type2
if name == "GIRATINA"
return 15 if @form == 0
return 15 if @form == 1
else
@type1
end
end
Mais, allez vous me dire, GIRATINA ne change pas de type ! C'est vrai, mais si l'on n'ajoute pas ces lignes de codes, il peut se retrouver de type SPECTRE SPECTRE
au lieu de SPECTRE DRAGON
Ensuite, le changement de stat : GIRATINA change de stats de base quand il change de forme : son attaque passe de 100 à 120 et inversement.
il faut donc ajouté entre le changement de DEOXYS des lignes de codes comme ceci :
alias temp_base_atk base_atk
def base_atk
if name == "DEOXYS"
return 180 if @form == 1
return 70 if @form == 2
return 95 if @form == 4
end
if name == "GIRATINA"
return 100 if form == 0
return 120 if form == 1
end
temp_base_atk
end
alias temp_base_dfe base_dfe
def base_dfe
if name == "DEOXYS"
return 20 if form == 1
return 160 if form == 2
return 90 if form == 4
end
if name == "GIRATINA"
return 120 if form == 0
return 100 if form == 1
end
temp_base_dfe
end
alias temp_base_spd base_spd
def base_spd
if name == "DEOXYS"
return 150 if form == 1
return 90 if form == 2
return 180 if form == 4
end
temp_base_spd
end
alias temp_base_ats base_ats
def base_ats
if name == "DEOXYS"
return 180 if form == 1
return 70 if form == 2
return 95 if form == 4
end
if name == "GIRATINA"
return 100 if form == 0
return 120 if form == 1
end
temp_base_ats
end
alias temp_base_dfs base_dfs
def base_dfs
if name == "DEOXYS"
return 20 if form == 1
return 160 if form == 2
return 90 if form == 4
end
temp_base_dfs
end
Maitenant, vous creez un objet orbe platine, et, quand vous le donnez à giratina, il change de forme et de Stats
Si vous avez des questions n'hésitez pas.