#========================================
# ■ Bestiaire pour RPG Maker VX
#------------------------------------------------- -----------------------------
# Version 1.0 (15/02/2008) par Krazplay
# Dernière version, commentaires:
# Http://rpgmakerxp-factory.net/forum/index.php?topic=12494
#------------------------------------------------- -----------------------------
Configuré est # Ce script pour fonctionner en 640x480! Pouvez vous trouver mon
# script pour passer en 640x480 ICI (aucune inscription Nécessaire N'est):
# Http://rpgmakerxp-factory.net/forum/index.php?topic=12460
# Ce script fonctionne Dans les Résolutions autres, mais il faut le reconfigurer
# (Voir les constantes modificateur a plus bas) pour pas que les textes ne dépassent.
#------------------------------------------------- -----------------------------
# Ce script utiliser les variables de 4001 à 4000 + Nbre de monstres Dans votre assiette
# De données. Cela Facilement Peut être modifié pour Utiliser d'autres variables
# Que Celles du jeu.
# Pour appeller ce menu il suffit d'Utiliser la ligne suivante:
Scene # $ = Scene_Liste_Monstres.new
# Renvoie Cette scène au menu Lorsqu'elle se termine, si Qu'elle Voulez Vous
# Ramène sur la carte plutôt qu'au menu, l'argument de l'ajouter faux:
Scene # $ = Scene_Liste_Monstres.new (false)
#
# N'oubliez pas de jeter un oeil à la configuration juste en-dessous!
#------------------------------------------------- -----------------------------
# Vous Pouvez Librement redistribuer ce script, y compris des versions Modifiées.
# VOUS DEVEZ Les plus laisser la provenance (auteur / site) du script original, elle
# Est Précisée Au début des commentaires.
#================================================= =============================
module KRAZ_SLM
# Si Vrai, Les Monstres QUI N'ONT Pas encore Été Vaincus n'apparaissent pas du
# Tout Dans la liste (même pas Comme monstre inconnu)
MONSTRES_INCONNUS_INVISIBLES = true
# Si les noms des monstres Sont visibles même s'ils N'ONT, Vrai jamais Été
Tués #, SI Faux, ils apparaitront avec le nom précisé NOM_MONSTRE_INCONNU Dans
NOMS_PAR_DEFAUT = false
# Si les monstres inconnus Sont visibles Mais Que Leurs noms n'apparaissent
# N'ONT pas s'ils Pas encore Été tué, alors c'est celui-là Qui sera utilisé.
NOM_MONSTRE_INCONNU = "inconnu Monstre"
# Vrai Si, ON PEUT Accéder aux détails d'un monstre même si l'On en a encore pas
# Tué un.
DETAILS_PAR_DEFAUT = false
# Si la scène est called par le menu, il Peut être sympa de REMETTRE Le curseur
# Sur la commande Bestiaire lorsqu'on y retourne.
POSITION_DS_MENU = 0
# Définit quelles variables vont Utilisées être.
# N'oublier pas que cela commence à DEPART_VARIABLES +1, Parce Que Le Premier
# Monstre l'un ID 1 et non 0.
DEPART_VARIABLES = 4000
# Les méthodes Suivantes Sont Les Seules références aux variables sont où
# Stockés le nombre d'ennemi tué DE CHAQUE sorte, donc si vous NE PAS Désirez
# Utiliser des variables du jeu, c'est uniquement ici que ça se passe.
def self.nombre_tués (id_monstre)
return $ game_variables [DEPART_VARIABLES + id_monstre]
fin
self.set_nombre_tués def (id_monstre, nombre)
$ game_variables [DEPART_VARIABLES + id_monstre] = nombre
fin
self.ajout_nombre_tués def (id_monstre, nombre)
game_variables $ [DEPART_VARIABLES + id_monstre] = nombre +
fin
# Ce qui permet de répondre Déplacer Quasiment tout les textes présents Dans le
# Puissiez AFIN script que vous le customiser ou le faire fonctionner Dans Une
# Résolution Autre.
#======> Positionnement des éléments <======#
# Pour du 640x480
#-------------------------------------------#
# La fenêtre générale automatiquement par Prend TOUT L'écran
# Taille de la police
24 = FG_TP
# Description des 2 colonnes
FG_COL1 = "Nom du monstre:"
FG_COL2 = "Nombre Tues:"
# Position des descriptions [x, y, longueur, hauteur]
FG_PD1 = [10, 0, 200, 32]
FG_PD2 = [350, 0, 200, 32]
# Position du numéro du monstre selectionné [x, y, longueur, hauteur]
FG_NM = [240, 420, 300, 32]
# Fenêtre liste des monstres [x, y, longueur, hauteur]
# Attention, cette fenêtre ne se voit pas, seul son est contenu visible.
FM = [0, 66, 544, 350] #
# Nom du monstre [x, largeur max]
FM_NM = [20, 300]
# Nombre de Monstres Tués [x, largeur]
# Attention, alignement du texte à droite et non à gauche.
FM_NMT = [470, 30]
# Fenêtre détails d'un monstre [x, y, largeur, hauteur]
FD = [0, 0, 544, 416]
# Vitesse Ouverture / Fermeture (255 Le Plus Rapide)
FD_V = 24
# Position de l'image du monstre [x, y]
FD_B = [215, 220]
# Taille de la police du nom du monstre
FD_TT = 29
# Couleur DU NOM du monstre [Rouge, Vert, Bleu, Opacité]
FD_CT = [255, 155, 155, 255]
# Nom du monstre [x, y, longueur, hauteur]
# Attention Ici le nom est sur centre x
FD_NM = [300, 0, 400, 32]
# Taille de la police du reste de la Fenêtre
FD_TP = 24
# Utiliser la couleur système pour la suite
FD_COLOR_SYSTEM = true
# Si vous NE PAS UTILISER Désirez la couleur Système
# [Rouge, Vert, Bleu, Opacité]
FD_CSA = [255, 155, 155, 255]
# Pour tout costume Qui CE, LE nom de la caractéristique et sa valeur Sont écrit
# Dans le rectangle de même, mais la valeur est aligné à droite du rectangle.
# Position de HP [x, y, longueur, hauteur]
FD_HP = [50, 30, 100, 32] # Points de Vie de
FD_MP = [: 50, 55, 100, 32] # Points de Magie
FD_ATK = [300, 50, 200, 32] # Attaque
FD_DEF = [300 80, 200, 32] Défense #
FD_SPI = [300, 110, 200, 32] # Esprit
FD_AGI = [300, 140, 200, 32] # Agilité
FD_EXP = [10, 335, 100, 32] Expérience #
FD_GOLD = [10, 360, 100, 32] # Argent
# Désignants Mots respectivement l'expérience et les objets Pouvant être Laissé
# Par l'ennemi.
FD_MEXP = "EXP"
FD_MDROP = "Objets"
# Position du mot FD_MDROP [x, y, longueur, hauteur]
FD_DROP = [10, 385, 200,, 32]
# Position des objets droppé par l'ennemi [x, y, longueur, hauteur]
FD_DR1 = [150, 385, 212, 32]
FD_DR2 = [150, 410, 200, 32]
# Graphique des défenses elementales [x, y, rayonne]
FD_GDE = [300, 200, 30]
##=====> Fin positionnement des éléments pour 640x480 <=====##
fin
#================================================= =============================
# Graphic_Def_Elem
#================================================= =============================
classe Window_Base
18 = FONT_SIZE
WORD_ELEMENT_GUARD = "Def. Elémentale"
Nombre_d'éléments = 6
ELEMENT_ORDER = [1,3,4,5,2,4,6]
GRAPH_SCALINE_COLOR = Color.new (255, 255, 255, 128)
GRAPH_SCALINE_COLOR_SHADOW = Color.new (0, 0, 0, 192)
GRAPH_LINE_COLOR = Color.new (255, 255, 64, 255)
GRAPH_LINE_COLOR_MINUS = Color.new (64, 255, 255, 255)
GRAPH_LINE_COLOR_PLUS = Color.new (255, 64, 64, 255)
fin
#================================================= =============================
# ■ Scene_Battle
#------------------------------------------------- -----------------------------
# Les Ajoute Monstres Tués aux variables lorsqu'on gagne un combat ou fuit.
#================================================= =============================
Scene_Battle classe
comprennent KRAZ_SLM
alias process_victory kraz_slm_process_victory
def process_victory
compte_les_morts
kraz_slm_process_victory
fin
alias kraz_slm_process_escape process_escape
def process_escape
compte_les_morts
kraz_slm_process_escape
fin
def compte_les_morts
pour Enemy in $ game_troop.members
enemy.dead cas?
KRAZ_SLM.ajout_nombre_tués (enemy.enemy_id, 1)
fin
fin
fin
fin
#================================================= =============================
# ■ Scene_Liste_Monstres
#------------------------------------------------- -----------------------------
# La scène du bestiaire, tout simplement.
#================================================= =============================
Scene_Liste_Monstres classe
comprennent KRAZ_SLM
def initialize (vient_du_menu = true)
# Pour savoir si l'sur retourne au menu ou sur la carte à la fin de la scène.
@ vient_du_menu = vient_du_menu
# Vérifier si Sert à l'index de la fenêtre monstres a changé.
# -1 Pour forcer la mise à jour dès le départ
@ monstres_index = -1
fin
def main
@ general_window = Window_General.new
@ monstres_window = Window_Monstres.new
@ details_monstre_window = Window_Details_Monstre.new
general_window.set_max_monstres @ (@ monstres_window.data.size)
@ details_monstre_window.openness = 0
@ details_monstre_window.active = false
Graphics.transition
boucle ne
Graphics.update
Input.update
mettre à jour
if $ scene! = self
pause
fin
fin
@ general_window.dispose
@ monstres_window.dispose
fin
def mise à jour
# Mise à jour des fenêtre
@ general_window.update
@ monstres_window.update
@ details_monstre_window.update
# Sur Vérifie si le curseur une Bougé
if@monstres_window.index! = @ monstres_index
monstres_index = @ @ monstres_window.index
general_window.affiche_numero @ (@ monstres_index +1)
fin
# Bouton de confirmation
si Input.trigger? (Input:: C)
if@monstres_window.active and@monstres_window.data.size> 0
id_monstre = @ monstres_window.data [@ monstres_window.index] [2]
si KRAZ_SLM.nombre_tués (id_monstre)> 0 ou DETAILS_PAR_DEFAUT
@ details_monstre_window.refresh (id_monstre)
@ details_monstre_window.active = true
@ details_monstre_window.open
@ monstres_window.active = false
Sound.play_decision
autre
Sound.play_buzzer
fin
fin
# Bouton d'annulation
elsif Input.trigger? (Input:: B)
Sound.play_cancel
if@monstres_window.active
$ scene = @ vient_du_menu? Scene_Menu.new (POSITION_DS_MENU): Scene_Map.new
Graphics.freeze
elsif@details_monstre_window.active
@ details_monstre_window.active = false
@ details_monstre_window.close
@ monstres_window.active = true
fin
fin
if@details_monstre_window.active
# Passage d'un monstre à l'autre lorsqu'on regarde Leurs détails
si Input.repeat? (Input:
ou Input.repeat? DROITE (Input:: DOWN)
data = @ monstres_window.data
= new_index index = @ monstres_window.index
data.size.times ne
new_index + = 1
new_index = 0 si new_index> = data.size
pause si DETAILS_PAR_DEFAUT ou de données [new_index] [1]> 0
fin
si new_index! = index
@ details_monstre_window.refresh (data [new_index] [2])
Sound.play_cursor
@ monstres_window.index = new_index
fin
elsif Input.repeat? (Input:: LEFT) ou Input.repeat? (Input:: UP)
data = @ monstres_window.data
= new_index index = @ monstres_window.index
data.size.times ne
new_index -= 1
new_index = data.size-1 si new_index <0
pause si DETAILS_PAR_DEFAUT ou de données [new_index] [1]> 0
fin
@ details_monstre_window.refresh (data [new_index] [2]) si new_index! = index
@ monstres_window.index = new_index
si new_index! = index
@ details_monstre_window.refresh (data [new_index], [2])
Sound.play_cursor
@ monstres_window.index = new_index
fin
fin
fin
# fin update_command
# class Scene_Liste_Monstres fin
#================================================= =============================
# ■ Window_General
#------------------------------------------------- -----------------------------
# General Fenêtre
#================================================= =============================
classe Window_General
comprennent KRAZ_SLM
def initialize
super (0, 0, Graphics.width, Graphics.height)
@ max = 0
refresh
fin
def refresh
= self.contents.font.size FG_TP
self.contents.font.color = system_color
(self.contents.draw_text FG_PD1 [0], FG_PD1 [1], FG_PD1 [2], FG_PD1 [3], FG_COL1)
self.contents.draw_text (FG_PD2 [0], FG_PD2 [1], FG_PD2 [2], FG_PD2 [3], FG_COL2)
fin
def affiche_numero (ind = 1)
# On efface Une partie de la fenêtre (RGSS2!) Avant d'écrire dessus
self.contents.clear_rect (FG_NM [0], FG_NM [1], FG_NM [2], FG_NM [3])
(self.contents.draw_text FG_NM [0], FG_NM [1], FG_NM [2], FG_NM [3], "Monstre # (ind) / # (@ max)")
fin
def set_max_monstres (max)
@ max = max
fin
fin
#================================================= =============================
# ■ Window_Monstres
#------------------------------------------------- -----------------------------
# Avec fenêtre le nom de tout les ennemis Tués et combien de fois ils Ont Été
# Tués. Seul le texte de la fenêtre reste visible (l'opacité et l'opacité du
# Fond est mise à zéro).
#================================================= =============================
Window_Monstres classe
comprennent KRAZ_SLM
attr_reader: les données
def initialize
# Creation de la fenêtre, sur Qu'elle s'assure au-dessus de la fenêtre 'General'
super (FM [0], FM [1], FM [2], FM [3])
# On ne veut voir que le texte, donc opacité et back_opacity à 0
0 = self.back_opacity
self.opacity = 0
# À index zéro lorsqu'on commence, Colonne Une seule
self.index = 0
@ column_max = 1
# @ Data est le Tableau des données Qui vont être affichées.
# Ces éléments Sont des tableaux [nom du monstre, tué nombre, ID du monstre]
@ data = []
# @ Remplissage de données
pour Monstre en $ data_enemies
prochaine si Monstre == nil
id = monstre.id
Tués = KRAZ_SLM.nombre_tués (id)
si Tués == 0
prochaine si MONSTRES_INCONNUS_INVISIBLES
= nom NOMS_PAR_DEFAUT? monstre.name: NOM_MONSTRE_INCONNU
@ data.push ([nom, mardi, id])
autre
nom = monstre.name
@ data.push ([nom, mardi, id])
fin
fin
# Le nombre d'objets Dans notre liste c'est évidement le nombre de monstre
# Qu'on va afficher
item_max = @ @ data.size
# Va Mettre le bitmap à la bonne taille
create_contents
refresh
fin
def refresh
self.contents.clear
for i in 0 ... @ item_max
element_trace (i)
fin
fin
def element_trace (index)
tab_monstre = @ data [index]
si tab_monstre! = nil
(self.contents.draw_text FM_NM [0], (WLH * index), FM_NM [1], WLH, tab_monstre [0])
self.contents.draw_text (FM_NMT [0], (WLH * index), FM_NMT [1], WLH, tab_monstre [1]. to_s, 2)
fin
fin
def item_rect (index)
Rect.new = rect (0, 0, 0, 0)
rect.width = (+ @ contents.width espacement) / @ column_max - @ espacement
= rect.height WLH
rect.x = index% @ column_max * (rect.width + @ espacement)
= rect.y index / @ * column_max WLH
return rect
fin
def mise à jour
super
if @ column_max == 1 et self.active
si Input.repeat? (Input:: RIGHT)
cursor_pagedown
fin
si Input.repeat? (Input:: LEFT)
cursor_pageup
fin
fin
fin
# class Window_Monstres fin
#================================================= =============================
# ■ Window_details_monstre
#------------------------------------------------- -----------------------------
# Permet de Créer une fenêtre avec les détails d'un ennemi
#================================================= =============================
classe Window_Details_Monstre
comprennent KRAZ_SLM
def initialize
super (FD [0], fd [1], FD [2], FD [3])
self.contents = Bitmap.new (largeur-32, hauteur-32)
self.back_opacity = 255
fin
def mise à jour
if @ ouverture
self.openness + = FD_V
@ ouverture = FALSE si self.openness == 255
elsif @ clôture
-= self.openness FD_V
@ clôture = false si self.openness == 0
fin
fin
refresh def (monstre_id)
self.contents.clear
draw_actor_battler ($ data_enemies [monstre_id], FD_B [0], FD_B [1])
= self.contents.font.size FD_TT
= self.contents.font.color Color.new (FD_CT [0], FD_CT [1], FD_CT [2], FD_CT [3])
= monster_name_width contents.text_size ($ data_enemies [monstre_id]. nom). largeur
(self.contents.draw_text FD_NM [0] - (monster_name_width / 2), FD_NM [1], FD_NM [2], FD_NM [3], $ data_enemies [] monstre_id. nom)
= self.contents.font.size FD_TP
si FD_COLOR_SYSTEM
self.contents.font.color = system_color
autre
= self.contents.font.color Color.new (FD_CSA [0], FD_CSA [1], FD_CSA [2], FD_CSA [3])
fin
(self.contents.draw_text FD_HP [0], FD_HP [1], FD_HP [2], FD_HP [3], "# () Vocab.hp:")
(self.contents.draw_text FD_MP [0], FD_MP [1], FD_MP [2], FD_MP [3], "# () Vocab.mp:")
(self.contents.draw_text FD_ATK [0], FD_ATK [1], FD_ATK [2], FD_ATK [3], "# () Vocab.atk:")
(self.contents.draw_text FD_DEF [0], FD_DEF [1], FD_DEF [2], FD_DEF [3], "# () Vocab.def:")
(self.contents.draw_text FD_SPI [0], FD_SPI [1], FD_SPI [2], FD_SPI [3], "# () Vocab.spi:")
(self.contents.draw_text FD_AGI [0], FD_AGI [1], FD_AGI [2], FD_AGI [3], "# () Vocab.agi:")
(self.contents.draw_text FD_EXP [0], FD_EXP [1], FD_EXP [2], FD_EXP [3], FD_MEXP + ":")
self.contents.draw_text (FD_GOLD [0], FD_GOLD [1], FD_GOLD [2], FD_GOLD [3], "# () Vocab.gold:")
(self.contents.draw_text FD_DROP [0], FD_DROP [1], FD_DROP [2], FD_DROP [3], FD_MDROP + ":")
self.contents.font.color = normal_color
(self.contents.draw_text FD_HP [0], FD_HP [1], FD_HP [2], FD_HP [3], data_enemies $ [maxhp.to_s monstre_id]., 2)
(self.contents.draw_text FD_MP [0], FD_MP [1], FD_MP [2], FD_MP [3], data_enemies $ [maxmp.to_s monstre_id]., 2)
(self.contents.draw_text FD_ATK [0], FD_ATK [1], FD_ATK [2], FD_ATK [3], data_enemies $ [atk.to_s monstre_id]., 2)
(self.contents.draw_text FD_DEF [0], FD_DEF [1], FD_DEF [2], FD_DEF [3], data_enemies $ [def.to_s monstre_id]., 2)
(self.contents.draw_text FD_SPI [0], FD_SPI [1], FD_SPI [2], FD_SPI [3], data_enemies $ [spi.to_s monstre_id]., 2)
(self.contents.draw_text FD_AGI [0], FD_AGI [1], FD_AGI [2], FD_AGI [3], data_enemies $ [agi.to_s monstre_id]., 2)
(self.contents.draw_text FD_EXP [0], FD_EXP [1], FD_EXP [2], FD_EXP [3], data_enemies $ [exp.to_s monstre_id]., 2)
self.contents.draw_text (FD_GOLD [0], FD_GOLD [1], FD_GOLD [2], FD_GOLD [3], data_enemies $ [gold.to_s monstre_id]., 2)
# Affichage objets Donner PEUVENT que les ennemis
si data_enemies $ [] monstre_id. drop_item1.kind! = 0
data_enemies item = $ [monstre_id]. drop_item1
cas item.kind
Lorsque 1
nb_elements icon_index = $ [item.item_id]. icon_index
nb_elements nom = $ [item.item_id]. nom
lorsque 2
data_weapons icon_index = $ [item.weapon_id]. icon_index
data_weapons nom = $ [item.item_id]. nom
lorsque 3
data_armors icon_index = $ [item.armor_id]. icon_index
data_armors nom = $ [item.item_id]. nom
fin
= opacité self.contents.font.color == normal_color? 255: 128
data_enemies denom = $ [monstre_id]. drop_item1.denominator.to_s
draw_icon (icon_index, FD_DR1 [0], FD_DR1 [1] +4)
(self.contents.draw_text FD_DR1 [0] +30, FD_DR1 [1], FD_DR1 [2], FD_DR1 [3], nom + "(1 / # (denom))", 0)
fin
si data_enemies $ [] monstre_id. drop_item2.kind! = 0
data_enemies item = $ [monstre_id]. drop_item2
cas item.kind
Lorsque 1
nb_elements icon_index = $ [item.item_id]. icon_index
nb_elements nom = $ [item.item_id]. nom
lorsque 2
data_weapons icon_index = $ [item.weapon_id]. icon_index
data_weapons nom = $ [item.item_id]. nom
lorsque 3
data_armors icon_index = $ [item.armor_id]. icon_index
data_armors nom = $ [item.item_id]. nom
fin
= opacité self.contents.font.color == normal_color? 255: 128
data_enemies denom = $ [monstre_id]. drop_item2.denominator
draw_icon (icon_index, FD_DR2 [0], FD_DR2 [1] +4)
(self.contents.draw_text FD_DR2 [0] +30, FD_DR2 [1], FD_DR2 [2], FD_DR2 [3], nom + "(1 / # (denom))", 0)
fin
self.draw_enemy_element_radar_graph ($ data_enemies [monstre_id], FD_GDE [0], FD_GDE [1], FD_GDE [2])
fin
fin
#------------------------------------------------- -------------------------
# ● draw_actor_battler
# Le lutteur de l'acteur Dessine aux coordonnées x, y
# L'acteur Peut aussi bien être un monstre Qu'un personnage
#------------------------------------------------- -------------------------
classe Window_Base
def draw_actor_battler (acteur, x, y)
bitmap = Cache.battler (actor.battler_name, actor.battler_hue)
cw = Bitmap.Width
= CH Bitmap.Height
= src_rect Rect.new (0, 0, cw, ch)
self.contents.blt (x - cw / 2, y - ch / 2, bitmap, src_rect)
fin
fin
#================================================= =============================
# ¡Window_Status
#================================================= =============================
classe Window_Base
#------------------------------------------------- -------------------------
def draw_enemy_element_radar_graph (ennemi, x, y, rayon = 56)
cx = x + rayon + FONT_SIZE + 48
cy = y + rayon + FONT_SIZE + 32
self.contents.font.color = system_color
# self.contents.draw_text (x, y, 134, 32, WORD_ELEMENT_GUARD)
pour loop_i à 0 .. nombre_d'éléments
si loop_i == 0
autre
pre_x = @ @ now_x
pre_y = @ @ now_y
pre_ex = @ @ now_ex
pre_ey = @ @ now_ey
@ color1 = @ color2
fin
si loop_i == nombre_d'éléments
eo = ELEMENT_ORDER [0]
autre
eo = ELEMENT_ORDER [loop_i]
fin
er = element_pourcent (ennemi, eo)
data_system.elements estr = $ [eo]
@ color2 = er <0? GRAPH_LINE_COLOR_MINUS: er> 100? GRAPH_LINE_COLOR_PLUS: GRAPH_LINE_COLOR
th = Math:: PI * (0,5 - 2,0 * loop_i / nombre_d'éléments)
@ now_x = cx + (radius * Math.cos (th)). étage
now_y = @ cy - (radius * Math.sin (th)). étage
@ now_wx = cx + ((rayon + FONT_SIZE * 2 / 2) * Math.cos (th)). étage - FONT_SIZE
now_wy @ cy = - ((radius + FONT_SIZE * 1 / 2) * Math.sin (th)). étage - FONT_SIZE / 2
@ now_vx = cx + ((rayon + FONT_SIZE * 6 / 2) * Math.cos (th)). étage - FONT_SIZE
now_vy = @ cy - ((radius + FONT_SIZE * 3 / 2) * Math.sin (th)). étage - FONT_SIZE / 2
@ now_ex = cx + (er.abs * radius/100 * Math.cos (th)). étage
now_ey = @ cy - (er.abs * radius/100 * Math.sin (th)). étage
si loop_i == 0
pre_x = @ @ now_x
pre_y = @ @ now_y
pre_ex = @ @ now_ex
pre_ey = @ @ now_ey
@ color1 = @ color2
autre
fin
prochaine si loop_i == 0
(self.contents.draw_line cx +1, cy +1, @ now_x +1, @ now_y +1, GRAPH_SCALINE_COLOR_SHADOW)
self.contents.draw_line (@ pre_x +1, @ pre_y +1, @ now_x +1, @ now_y +1, GRAPH_SCALINE_COLOR_SHADOW)
self.contents.draw_line now_x (cx, cy, @, @ now_y, GRAPH_SCALINE_COLOR)
self.contents.draw_line (@ pre_x, @ pre_y, @ now_x, @ now_y, GRAPH_SCALINE_COLOR)
self.contents.draw_line (@ pre_ex, @ pre_ey, @ now_ex, @ now_ey, @ color1, 2, @ color2)
= self.contents.font.size FONT_SIZE
self.contents.font.color = system_color
self.contents.draw_text (@ now_wx, @ now_wy, FONT_SIZE * 2, FONT_SIZE, estr, 1)
= self.contents.font.color Color.new (255255255128)
self.contents.draw_text (@ now_vx, @ now_vy, FONT_SIZE * 2, FONT_SIZE, er.to_s + "%", 2)
fin
fin
#------------------------------------------------- -------------------------
# ●属性補正値の取得
# Element_id:属性ID
#------------------------------------------------- -------------------------
def element_pourcent (ennemi, element_id)
table = [0,200,150,100,50,0, -100]
retour table [enemy.element_ranks [element_id]]
fin
fin
#================================================= =============================
# ¸ | OCU |
#================================================= =============================
classe Bitmap
def DRAW_LINE (start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
= distance (start_x - end_x). abs + (start_y - end_y). abs
si end_color == start_color
for i in 1 .. distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance). to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance). to_i
Si la largeur == 1
self.set_pixel (x, y, start_color)
autre
self.fill_rect (x, y, largeur, la largeur, start_color)
fin
fin
autre
for i in 1 .. distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance). to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance). to_i
r = start_color.red * (distance-i) / distance + end_color.red * i / distance
g = start_color.green * (distance-i) / distance + end_color.green * i / distance
b = start_color.blue * (distance-i) / distance + end_color.blue * i / distance
une start_color.alpha = * (distance-i) / distance + end_color.alpha * i / distance
Si la largeur == 1
self.set_pixel (x, y, Color.new (r, g, b, a))
autre
self.fill_rect (x, y, largeur, la largeur, Color.new (r, g, b, a))
fin
fin
fin
fin