AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

Partagez
 

 [VX] Display Damage Animation

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Zeus
Habitant Lv.6
Habitant Lv.6
Zeus


Masculin Inscrit le : 13/04/2011
Messages : 127

[VX] Display Damage Animation Empty
MessageSujet: [VX] Display Damage Animation   [VX] Display Damage Animation Icon_minitimeJeu 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 :
[VX] Display Damage Animation 0-2790221
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 :
[VX] Display Damage Animation 0-279023a
(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 :
[VX] Display Damage Animation 0-27900db
(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 :
[VX] Display Damage Animation 0-2790287
(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
Revenir en haut Aller en bas
 

[VX] Display Damage Animation

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» [Script] Bestiary + Display Scanned Enemy/ Display Skill Query
» Introduction à la création d'animation de SBS : Créer une animation de bombe réaliste.
» Damage Delay
» Animation de jet de dé
» animation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Combat-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit