Habitant Lv.6
Inscrit le : 13/04/2011 Messages : 127
| Sujet: [VX] Display Damage Animation Jeu 14 Avr 2011 - 13:43 | |
| Script permettant d'afficher les dégâts sur les ennemis de manière simple et efficace afin d'agrémenter un peu le système de base qui n'est pas très jojo. - Code:
-
# Display Damage Animation v1.1 by Zeus81 class Scene_Battle # Ecrivez ci-dessous les id des animations pour chaque cas possible. # Si vous voulez une même animation peut être utilisée pour tous. # 0 = Aucune animation Miss_Animation = 0 Evade_Animation = 0 HP_Damage_Animation = 0 HP_Critical_Animation = 0 HP_Drain_Animation = 0 HP_Recovery_Animation = 0 MP_Damage_Animation = 0 MP_Drain_Animation = 0 MP_Recovery_Animation = 0 alias zeus_display_damage_animation display_damage def display_damage(target, obj = nil) target.animation_id = if target.missed or target.evaded if target.missed and obj and !obj.physical_attack; 0 elsif target.missed; Miss_Animation elsif target.evaded; Evade_Animation end elsif obj and obj.damage_to_mp damages = target.mp_damage.abs.to_s if target.dead? or target.mp_damage == 0; 0 elsif target.absorbed ; MP_Drain_Animation elsif target.mp_damage < 0; MP_Recovery_Animation else MP_Damage_Animation end else damages = target.hp_damage.abs.to_s if obj and obj.base_damage == 0; 0 elsif target.absorbed ; HP_Drain_Animation elsif target.hp_damage < 0; HP_Recovery_Animation elsif target.critical ; HP_Critical_Animation else HP_Damage_Animation end end if target.animation_id > 0 animation = $data_animations[target.animation_id] bmp = Cache.animation(animation.animation2_name, animation.animation2_hue) bmp.clear_rect(0, 0, 192, 192) if damages x = (192-damages.size*(w=(bmp.width-576)/10))/2 damages.size.times do |i| bmp.blt(x+i*w, 0, bmp, Rect.new(576+damages[i,1].to_i*w,0,w,192)) end else bmp.blt(0, 0, bmp, Rect.new(target.missed ? 192 : 384,0,192,192)) end end zeus_display_damage_animation(target, obj) end end Ce script marche au moyen d'animations, vous créez des animations classiques et le nombre de dégâts remplacera automatiquement l'image de votre animation. Il suffit d'utiliser ce template : Sur le premier carreau vous écrivez ce que vous voulez, en fait ce carreau sert juste à faire l'animation, pour ne pas travailler avec un carreau vide. Le deuxième carreau c'est ce qui s'affichera en cas de raté. Le troisième c'est si l'ennemi esquive (oui c'est différent). Et ensuite c'est les nombres pour l'affichage des dégâts, là je leur ai mis une largeur de 32 mais on peut le modifier, l'important c'est que tous les chiffres aient la même largeur. Exemple d'un template plus fin : (Et il ne faut pas qu'il y ait d'espace vide sur la droite, la taille de l'image doit s'ajuster exactement à son template !) Il faut créer l'animation en mettant ce fichier spécial en Animation 2 : (Il est possible d'utiliser l'Animation 1 pour mettre une bulle derrière les dégâts par exemple.) On fait l'animation de dégâts avec la case Test, on peut mettre des rotations, zooms, etc.., et ensuite le script se chargera de remplacer cette image par le nombre de dégâts. Exemple : (Ne pas oublier de mettre le type de transparence en Normal.) Enfin il faut mettre l'id de l'animation au début du script. Démo |
|