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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
| #############################################################################
# Add_on SBS - Scan V2 #
# by wilkyo - Idea of Drakild #
# Permet d'utiliser la compétence scan, qui une fois utilisée sur un ennemi, permet de voir sa vie #
# #
# Utilisation: #
# - Créez l'état "Scanné" dans la BDD, en cochant la case "Aucune résistance" #
# - Créez la compétence Scan, qui inflige à un ennemi l'état "Scanné" (avec de préférence 100%) #
# - Réglez vos préférences çi dessous #
#############################################################################
module N01
# id de l'état "Scanné"
ID_SCAN = 35
# Si vrai, replace le nom de la cible à la place de sa vie
SCAN_NAME =true
# Décale vers la droite le nom (pour ceux qui sont pas satisfaits de l'affichage)
DECAL_NAME = true
# Si vrai, en scannant 1 ennemi, ça scan tous les ennemis de la même espèce.
SCAN_GROUPES = true
# Nombre d'icônes à afficher
NB_ICONES = 8
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
def enemy?
return false
end
def scanned?
return true
end
end
#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
# This class handles enemy characters. It's used within the Game_Troop class
# ($game_troop).
#==============================================================================
class Game_Enemy < Game_Battler
def enemy?
return true
end
#######################################################
# Renvoie vrai si l'ennemi est sous l'effet du scan #
#######################################################
def scanned?
return states.include?($data_states[N01::ID_SCAN])
end
#######################################################
# Scan tous les ennemis du même type qu'un ennemi scanné #
#######################################################
def scan_groupes
s_s = $data_states[N01::ID_SCAN]
for i in $game_troop.members
if i.states.include?(s_s)
for j in $game_troop.members
j.add_state(N01::ID_SCAN) if j.enemy_id == i.enemy_id && !j.states.include?(s_s)
end
end
end
end
end
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
# スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
#==============================================================================
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● テキスト設定
#--------------------------------------------------------------------------
def set_text_n01add(member)
self.contents.clear
return if member == nil || member.dead?
member.scan_groupes if N01::SCAN_GROUPES&& member.enemy?
self.contents.font.color = normal_color
if !member.actor? && N01::ENEMY_NON_DISPLAY.include?(member.enemy_id)
return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
elsif member.actor? && !N01::ACTOR_DISPLAY
return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
end
if N01::WORD_STATE_DISPLAY && N01::HP_DISPLAY
nom = member.name
lgt = 175
if member.scanned?
draw_actor_hp(member, 182, 0, 120)
elsif N01::SCAN_NAME
(nom += " " while nom.size < 22) if N01::DECAL_NAME
lgt = 300
end
self.contents.draw_text(0, 0, lgt, WLH, nom, 2)
draw_enemy_state(member,315,0)
elsif N01::HP_DISPLAY
nom = member.name
lgt = 175
if member.scanned?
draw_actor_hp(member, 262, 0, 120)
elsif N01::SCAN_NAME
(nom += " " while nom.size < 22) if N01::DECAL_NAME
lgt = 300
end
self.contents.draw_text(4, 0, lgt, WLH, nom, 2)
end
end
def draw_enemy_state(enemy, x, y, width = 24*N01::NB_ICONES)
count = 0
for state in enemy.states
next if state.extension.include?("HIDEICON")
draw_icon(state.icon_index, x + 24 * count, y)
count += 1
break if (24 * count > width - 24)
end
end
end |