❤ 0 Auteur : Zeus81
Logiciel : RPG Maker VX
Nombre de scripts : 1
Fonctionnalités
Script pour VX 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.
Installation
A placer au-dessus de Main.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| # 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
Si vous avez des questions, envoyez les par MP à olivieruchiwa.
Mis à jour le 4 juillet 2020.
|