Final Fantasy RPG Maker

Assimilation de compétences

Vient de la factory
Créateur : Mizuojiro

Il permet d'apprendre des compétences ennemis a vos personnages quand ils utilisent la commande Défense, un pourcentage de réussite peut être configuré et vous pouvez rendre des compétences impossible à apprendre par ce moyen et il est aussi possible d'afficher une animation lorsque le personnage est sur le point d'apprendre une compétence.
L'apprentissage n'est possible non pas quand la commande Défense est lancée mais lorsqu'elle est actionnée.

Je l'ai fait à l'image du systeme d'apprentissage de Breath of Fire (ayant adoré BOF3 ^^)

Il ne devrait pas y avoir de problème.
Tout est expliqué dans le script même :

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ¦ Assimilation (par défense)
#_/ Par Eudliel, AOL (Angels of Legacy)
#_/ Le 4/02/2007
#_/-------------------------------------------------------------------
#_/ Apprentissage d'une compétence ennemie lors de la défense de l'un
#_/ de vos personnages.
#_/-------------------------------------------------------------------
#_/ Pour rendre une compétence impossible à apprendre par l'ennemi
#_/ par ce moyen il suffit de créer un attribut "Nolearning"
#_/ et de cocher l'attribut sur la compétence désirée.
#_/ Vous pouvez modifier le nom de l'attribut à cette ligne :
#_/ UNLEARNABLE_ELEMENT = "NOM_ATTRIBUT"
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 
module AOL
# Vous devez ici préciser dans LEARN_OPTION le pourcentage de réussite
# de l'assimilation.
LEARN_OPTION = 50
# Mettre true pour indiquer au joueur le pourcentage de réussite.
LEARN_INFO = true
# Faire varier les chances d'assimilation en fonction du pourcentage de HP
# de la cible.
LEARN_HP_VARIATION = true
# Si 0, plus le rapport HP / HP Max est haut plus les chances augmentent.
# Si 1, plus le rapport HP / HP Max est bas plus les chances augmentent.
LEARN_VARIATION_TYPE = 1
# Jouer une animation lorsqu'une compétence est sur le point d'être assimilée.
ANIM_LEARN = true
ANIM_ID = 98 # ID de l'animation à jouer
# Nom de l'attribut qui rend une compétence impossible à apprendre.
UNLEARNABLE_ELEMENT = "Nolearning"
end
 
class Game_Battler
 
attr_accessor :assimilation # Apprentissage par défense
alias initialize_Learn_Skill_AOL initialize
def initialize
initialize_Learn_Skill_AOL
@assimilation = false
end
 
def assimilation
return @assimilation
end
 
alias skill_effect_Learn_Skill_AOL skill_effect
def skill_effect(user, skill)
skill_effect_Learn_Skill_AOL(user, skill)
if self.assimilation == true and user.is_a?(Game_Enemy)
prob = AOL::LEARN_OPTION
if rand(100) < prob
if not skill&#46;element_set&#46;include?($data_system&#46;elements&#46;index(AOL&#58;&#58;UNLEARNABLE_ELEMENT))
if AOL&#58;&#58;ANIM_LEARN == true
self&#46;animation_id = AOL&#58;&#58;ANIM_ID
self&#46;animation_hit = true
end
self&#46;learn_skill(skill&#46;id)
end
end
end
end
 
end
 
class Scene_Battle
alias make_basic_action_result_Learn_Skill_AOL make_basic_action_result
def make_basic_action_result
make_basic_action_result_Learn_Skill_AOL
if @active_battler&#46;current_action&#46;basic == 1
@active_battler&#46;assimilation = true
if AOL&#58;&#58;LEARN_HP_VARIATION == true
if AOL&#58;&#58;LEARN_VARIATION_TYPE == 0
@chance = ((@active_battler&#46;hp&#46;to_f/@active_battler&#46;maxhp&#46;to_f)*AOL&#58;&#58;LEARN_OPTION)&#46;to_i
else
@chance = ((@active_battler&#46;maxhp&#46;to_f/@active_battler&#46;hp&#46;to_f)*AOL&#58;&#58;LEARN_OPTION)&#46;to_i
end
else
@chance = AOL&#58;&#58;LEARN_OPTION
end
if @chance > 100
@chance = 100
end
if AOL&#58;&#58;LEARN_INFO == true
@help_window&#46;set_text($data_system&#46;words&#46;guard+" - Assimilation "+@chance&#46;to_s+"%", 1)
else
@help_window&#46;set_text($data_system&#46;words&#46;guard, 1)
end
return
end
end
 
alias update_phase3_Learn_Skill_AOL update_phase3
def update_phase3
update_phase3_Learn_Skill_AOL
if @active_battler != nil
@active_battler&#46;assimilation = false
end
end
 
end



Ajouté par Amathlog
le 18/06/2007 à 20:46:31
Vu 4697 fois





Commentaires

Page: 1


8/10

Gigocker a écrit:

Le script ne marche pas a la ligne 38.C'est dommage il a l'air vraiment génial!:snif:

Message posté le 24/10/2011 à 19:44:07 IP: 213.44.46.220


Page générée en 0.0001 secondes
©2011 Site créé par Martial, le Webmaster
Me contacter - Livre d'or - Forum - Plan du site
Mentions légales - Remerciements
Final-RPG