Oniromancie: Scripts - Bestiaire pour Vx.


Comment ça marche?

Aëdemphia
Par Sylvanor

Forstale
Par Ødd Clock

Geex Maker
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Les Ombres d'Ymirs
Par Lakitorai

Lije
Par Gaetz

Omega Cerberus
Par Sill Valt

Sarcia
Par Kaëlar

News: Cérémonie des Alex d'Or le 6 (...) / Scripts: [XP] Pourvoir mettre jusqu'à 9 (...) / News: Je veux et j'exige des makings (...) / News: Je veux et j'exige des makings (...) / Scripts: Aplatir un événement sur la (...) /

Chat ( connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

55 connectés actuellement

6425032 visiteurs
depuis l'ouverture

851 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires






TOP GAMEMAKING


Les 5 plus
visités

Alex d'Or

Le Comptoir du Clikeur

Guelnika - E Magination

Final RPG

Level Up!

Au hasard

Le blog de Mr. Joke

Léo-Games

Nebula-Académie

Les deux derniers

Lunarisblog

Trollmaking

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Bestiaire pour Vx.
Script pour RPG Maker VX
Ecrit par Monos

Bestiaire créer par Krazplay avec adaptation de Ashka
pour la résolution native de Rm Vx et non le 640/480 indiquée dans le script.

Le mode d'emploi est dans le script en lui même.
Script à placer au dessus du script Main.





Portion de code:





#========================================

# ■ 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
#------------------------------------------------------------------------------
# Ce script est configuré pour fonctionner en 640x480 ! Vous pouvez trouver mon
# script pour passer en 640x480 ici (aucune inscription n'est nécessaire) :
# http://rpgmakerxp-factory.net/forum/index.php?topic=12460
# Ce script fonctionne dans les autres résolutions, mais il faut le reconfigurer
# (voir les constantes à modifier plus bas) pour que les textes ne dépassent pas.
#------------------------------------------------------------------------------
# Ce script utilise les variables 4001 à 4000+Nbre de monstres dans votre base
# de données. Cela peut facilement ê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
# Cette scene renvoie au menu lorsqu'elle se termine, si vous voulez qu'elle
# ramène sur la carte plutôt qu'au menu, ajouter l'argument false :
# $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.
# Mais vous devez 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 = false
# Si Vrai, les noms des monstres sont visibles même s'ils n'ont jamais été
# tués, si Faux, ils apparaitront avec le nom précisé dans NOM_MONSTRE_INCONNU
NOMS_PAR_DEFAUT = false
# Si les monstres inconnus sont visibles mais que leurs noms n'apparaissent
# pas s'ils n'ont pas encore été tué, alors c'est celui-là qui sera utilisé.
NOM_MONSTRE_INCONNU = "Monstre inconnu"
# Si vrai, on peut accéder aux détails d'un monstre même si l'on en a pas encore
# tué un.
DETAILS_PAR_DEFAUT = false
# Si la scene est appelée 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 être utilisées.
# N'oublier pas que cela commence à DEPART_VARIABLES+1, parce que le premier
# monstre a l'ID 1 et non 0.
DEPART_VARIABLES = 4000
# Les méthodes suivantes sont les seules références aux variables où sont
# stockés le nombre d'ennemi tué de chaque sorte, donc si vous désirez ne pas
# 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]
end

def self.set_nombre_tués(id_monstre, nombre)
$game_variables[DEPART_VARIABLES+id_monstre] = nombre
end

def self.ajout_nombre_tués(id_monstre, nombre)
$game_variables[DEPART_VARIABLES+id_monstre] += nombre
end

# Ce qui suit permet de déplacer quasiment tout les textes présents dans le
# script afin que vous puissiez le customiser ou le faire fonctionner dans une
# autre résolution.
#======> Positionnement des éléments <======#
# Pour du 640x480
#-------------------------------------------#
# La fenêtre générale prend automatiquement tout l'écran
# Taille de la police
FG_TP = 24
# Description des 2 colonnes
FG_COL1 = "Nom du monstre :"
FG_COL2 = "Nombre tués :"
# 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 contenu est 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 centré sur x
FD_NM = [300, 0, 400, 32]
# Taille de la police du reste de la fenêtre
FD_TP = 24
# Utilise la couleur système pour la suite
FD_COLOR_SYSTEM = true
# Si vous ne désirez pas utiliser la couleur système
# [Rouge, Vert, Bleu, Opacité]
FD_CSA = [255, 155, 155, 255]
# Pour tout ce qui suit, le nom de la caractéristique et sa valeur sont écrit
# dans le même rectangle, mais la valeur est aligné à droite du rectangle.
# Position HP [x, y, longueur, hauteur]
FD_HP = [50, 30, 100, 32] # Points de vie
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] # Experience
FD_GOLD = [10, 360, 100, 32] # Argent
# Mots désignants respectivement l'experience 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 élémentales [x, y, rayon]
FD_GDE = [300, 200, 30]
##=====> Fin positionnement des éléments pour 640x480 <=====##
end

#==============================================================================
# Graphic_Def_Elem
#==============================================================================
class Window_Base
FONT_SIZE = 18
WORD_ELEMENT_GUARD = "Déf. Elémentale"
NUMBER_OF_ELEMENTS = 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)
end

#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# Ajoute les monstres tués aux variables lorsqu'on gagne un combat ou fuit.
#==============================================================================
class Scene_Battle
include KRAZ_SLM

alias kraz_slm_process_victory process_victory
def process_victory
compte_les_morts
kraz_slm_process_victory
end

alias kraz_slm_process_escape process_escape
def process_escape
compte_les_morts
kraz_slm_process_escape
end

def compte_les_morts
for enemy in $game_troop.members
if enemy.dead?
KRAZ_SLM.ajout_nombre_tués(enemy.enemy_id, 1)
end
end
end
end

#==============================================================================
# ■ Scene_Liste_Monstres
#------------------------------------------------------------------------------
# La scène du bestiaire, tout simplement.
#==============================================================================
class Scene_Liste_Monstres
include KRAZ_SLM

def initialize(vient_du_menu = true)
# Pour savoir si l'on retourne au menu ou sur la carte à la fin de la scene.
@vient_du_menu = vient_du_menu
# Sert à vérifier si l'index de la fenêtre monstres a changé.
# -1 pour forcer la mise à jour dès le départ
@monstres_index = -1
end

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
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
@general_window.dispose
@monstres_window.dispose
end

def update
# Mise à jour des fenêtre
@general_window.update
@monstres_window.update
@details_monstre_window.update
# On vérifie si le curseur a bougé
if @monstres_window.index != @monstres_index
@monstres_index = @monstres_window.index
@general_window.affiche_numero(@monstres_index+1)
end
# Bouton de confirmation
if Input.trigger?(Input::C)
if @monstres_window.active and @monstres_window.data.size > 0
id_monstre = @monstres_window.data[@monstres_window.index][2]
if KRAZ_SLM.nombre_tués(id_monstre) > 0 or 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
else
Sound.play_buzzer
end
end
# 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
end
end
if @details_monstre_window.active
# Passage d'un monstre à l'autre lorsqu'on regarde leurs détails
if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::DOWN)
data = @monstres_window.data
new_index = index = @monstres_window.index
data.size.times do
new_index +=1
new_index = 0 if new_index >= data.size
break if DETAILS_PAR_DEFAUT or data[new_index][1] > 0
end
if new_index != index
@details_monstre_window.refresh(data[new_index][2])
Sound.play_cursor
@monstres_window.index = new_index
end
elsif Input.repeat?(Input::LEFT) or Input.repeat?(Input::UP)
data = @monstres_window.data
new_index = index = @monstres_window.index
data.size.times do
new_index -=1
new_index = data.size-1 if new_index < 0
break if DETAILS_PAR_DEFAUT or data[new_index][1] > 0
end
@details_monstre_window.refresh(data[new_index][2]) if new_index != index
@monstres_window.index = new_index
if new_index != index
@details_monstre_window.refresh(data[new_index][2])
Sound.play_cursor
@monstres_window.index = new_index
end
end
end
end # update_command
end # class Scene_Liste_Monstres

#==============================================================================
# ■ Window_General
#------------------------------------------------------------------------------
# Fenêtre général
#==============================================================================
class Window_General < Window_Base
include KRAZ_SLM

def initialize
super(0, 0, Graphics.width, Graphics.height)
@max = 0
refresh
end

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)
end

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}")
end

def set_max_monstres(max)
@max = max
end
end

#==============================================================================
# ■ Window_Monstres
#------------------------------------------------------------------------------
# Fenêtre avec 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).
#==============================================================================
class Window_Monstres < Window_Selectable
include KRAZ_SLM

attr_reader :data

def initialize
# Création de la fenêtre, on s'assure qu'elle 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
self.back_opacity = 0
self.opacity = 0
# Index à zéro lorsqu'on commence, une seule colonne
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, nombre tué, id du monstre]
@data = []
# Remplissage de @data
for monstre in $data_enemies
next if monstre == nil
id = monstre.id
tués = KRAZ_SLM.nombre_tués(id)
if tués == 0
next if MONSTRES_INCONNUS_INVISIBLES
nom = NOMS_PAR_DEFAUT ? monstre.name : NOM_MONSTRE_INCONNU
@data.push([nom, tués, id])
else
nom = monstre.name
@data.push([nom, tués, id])
end
end
# 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
end

def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end

def draw_item(index)
tab_monstre = @data[index]
if 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)
end
end

def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = WLH
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * WLH
return rect
end

def update
super
if @column_max == 1 and self.active
if Input.repeat?(Input::RIGHT)
cursor_pagedown
end
if Input.repeat?(Input::LEFT)
cursor_pageup
end
end
end

end #class Window_Monstres

#==============================================================================
# ■ Window_details_monstre
#------------------------------------------------------------------------------
# Permet de créer une fenêtre avec les détails d'un ennemi
#==============================================================================
class Window_Details_Monstre < Window_Base
include KRAZ_SLM

def initialize
super(FD[0], FD[1], FD[2], FD[3])
self.contents = Bitmap.new(width-32, height-32)
self.back_opacity = 255
end

def update
if @opening
self.openness += FD_V
@opening = false if self.openness == 255
elsif @closing
self.openness -= FD_V
@closing = false if self.openness == 0
end
end

def refresh(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].name).width
self.contents.draw_text(FD_NM[0]-(monster_name_width/2), FD_NM[1], FD_NM[2], FD_NM[3], $data_enemies[monstre_id].name)
self.contents.font.size = FD_TP
if FD_COLOR_SYSTEM
self.contents.font.color = system_color
else
self.contents.font.color = Color.new(FD_CSA[0], FD_CSA[1], FD_CSA[2], FD_CSA[3])
end
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[monstre_id].maxhp.to_s, 2)
self.contents.draw_text(FD_MP[0], FD_MP[1], FD_MP[2], FD_MP[3], $data_enemies[monstre_id].maxmp.to_s, 2)
self.contents.draw_text(FD_ATK[0], FD_ATK[1], FD_ATK[2], FD_ATK[3], $data_enemies[monstre_id].atk.to_s, 2)
self.contents.draw_text(FD_DEF[0], FD_DEF[1], FD_DEF[2], FD_DEF[3], $data_enemies[monstre_id].def.to_s, 2)
self.contents.draw_text(FD_SPI[0], FD_SPI[1], FD_SPI[2], FD_SPI[3], $data_enemies[monstre_id].spi.to_s, 2)
self.contents.draw_text(FD_AGI[0], FD_AGI[1], FD_AGI[2], FD_AGI[3], $data_enemies[monstre_id].agi.to_s, 2)

self.contents.draw_text(FD_EXP[0], FD_EXP[1], FD_EXP[2], FD_EXP[3], $data_enemies[monstre_id].exp.to_s, 2)
self.contents.draw_text(FD_GOLD[0], FD_GOLD[1], FD_GOLD[2], FD_GOLD[3], $data_enemies[monstre_id].gold.to_s, 2)
# Affichage objets que peuvent donner les ennemis
if $data_enemies[monstre_id].drop_item1.kind != 0
item = $data_enemies[monstre_id].drop_item1
case item.kind
when 1
icon_index = $data_items[item.item_id].icon_index
name = $data_items[item.item_id].name
when 2
icon_index = $data_weapons[item.weapon_id].icon_index
name = $data_weapons[item.item_id].name
when 3
icon_index = $data_armors[item.armor_id].icon_index
name = $data_armors[item.item_id].name
end
opacity = self.contents.font.color == normal_color ? 255 : 128
denom = $data_enemies[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], name + " (1/#{denom})", 0)
end
if $data_enemies[monstre_id].drop_item2.kind != 0
item = $data_enemies[monstre_id].drop_item2
case item.kind
when 1
icon_index = $data_items[item.item_id].icon_index
name = $data_items[item.item_id].name
when 2
icon_index = $data_weapons[item.weapon_id].icon_index
name = $data_weapons[item.item_id].name
when 3
icon_index = $data_armors[item.armor_id].icon_index
name = $data_armors[item.item_id].name
end
opacity = self.contents.font.color == normal_color ? 255 : 128
denom = $data_enemies[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], name + " (1/#{denom})", 0)
end
self.draw_enemy_element_radar_graph($data_enemies[monstre_id], FD_GDE[0], FD_GDE[1], FD_GDE[2])
end
end

#--------------------------------------------------------------------------
# ● draw_actor_battler
# Dessine le battler de l'acteur aux coordonnées x,y
# L'acteur peut aussi bien être un monstre qu'un personnage
#--------------------------------------------------------------------------
class Window_Base
def draw_actor_battler(actor, 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)
end
end

#==============================================================================
# �¡ Window_Status
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
def draw_enemy_element_radar_graph(enemy, x, y, radius = 56)
cx = x + radius + FONT_SIZE + 48
cy = y + radius + FONT_SIZE + 32
self.contents.font.color = system_color
#self.contents.draw_text(x, y, 134, 32, WORD_ELEMENT_GUARD)
for loop_i in 0..NUMBER_OF_ELEMENTS
if loop_i == 0

else
@pre_x = @now_x
@pre_y = @now_y
@pre_ex = @now_ex
@pre_ey = @now_ey
@color1 = @color2
end
if loop_i == NUMBER_OF_ELEMENTS
eo = ELEMENT_ORDER[0]
else
eo = ELEMENT_ORDER[loop_i]
end
er = element_pourcent(enemy, eo)
estr = $data_system.elements[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 / NUMBER_OF_ELEMENTS)
@now_x = cx + (radius * Math.cos(th)).floor
@now_y = cy - (radius * Math.sin(th)).floor
@now_wx = cx + ((radius+FONT_SIZE*2/2) * Math.cos(th)).floor - FONT_SIZE
@now_wy = cy - ((radius+FONT_SIZE*1/2) * Math.sin(th)).floor - FONT_SIZE/2
@now_vx = cx + ((radius+FONT_SIZE*6/2) * Math.cos(th)).floor - FONT_SIZE
@now_vy = cy - ((radius+FONT_SIZE*3/2) * Math.sin(th)).floor - FONT_SIZE/2
@now_ex = cx + (er.abs*radius/100 * Math.cos(th)).floor
@now_ey = cy - (er.abs*radius/100 * Math.sin(th)).floor
if loop_i == 0
@pre_x = @now_x
@pre_y = @now_y
@pre_ex = @now_ex
@pre_ey = @now_ey
@color1 = @color2
else

end
next if 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(cx,cy, @now_x,@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(255,255,255,128)
self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, er.to_s + "%", 2)
end
end

#--------------------------------------------------------------------------
# ● 属性補正値の取得
# element_id : 属性 ID
#--------------------------------------------------------------------------
def element_pourcent(enemy, element_id)
table = [0,200,150,100,50,0,-100]
return table[enemy.element_ranks[element_id]]
end
end
#==============================================================================
# �¸ [O�����C�u���[
#==============================================================================
class 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
if 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
if width == 1
self.set_pixel(x, y, start_color)
else
self.fill_rect(x, y, width, width, start_color)
end
end
else
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
a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
if width == 1
self.set_pixel(x, y, Color.new(r, g, b, a))
else
self.fill_rect(x, y, width, width, Color.new(r, g, b, a))
end
end
end
end
end



Nathän tsakuya - posté le 09/11/2008 à 14:12:56. (110 messages postés)

Maker sans idée ^^'

un screen peut-etre ? S il te plait ? ;)


Monos - posté le 09/11/2008 à 14:22:21. (53843 messages postés) - misteroniro

image

Par exemple en voici un mais je pense que le script est mieux optimisée.

Avant de dire que c'est moche les couleurs, les couleurs dépends de votre Windowskin.

Pixner|Offgame | Le comptoire des clikeurs


Nathän tsakuya - posté le 09/11/2008 à 14:41:06. (110 messages postés)

Maker sans idée ^^'

ok merci tata monos


jet95820 - posté le 09/11/2008 à 15:04:14. (33 messages postés)

bon Script je vais l utiser


franck james - posté le 11/11/2008 à 00:22:51. (23 messages postés)

Rock'n'roll

Excellent ! Et facilement personnalisable en plus,
C'est exactement ce que je cherchais (et je me faisais ch**r à faire ça avec des évènements...)
Mais là c'est beau, clair et automatique :)
Merci

www.myspace.fr/Zizitoudurh


makeur pro (visiteur non enregistré) - posté le 11/11/2008 à 16:26:58.

Juste un truc, à la ligne 17:
Il dit qu'il faut utiliser la ligne suivante:
# $scene = Scene_Liste_Monstres.new
Mais on l'utilise comment?Merci d'avance!;)


Monos - posté le 11/11/2008 à 18:13:17. (53843 messages postés) - misteroniro

Citation:

# $scene = Scene_Liste_Monstres.new



Page 3 du logiciel.
Insérer script ou un truc de ce genre suivant les versions.
Tu cole ce morceau de code. (sans le #) et quand cela sera joué,
le bestiaire va apparaître.

Ou directement dans le scripts menu par exemple mais la faut adapter le script pour faire une nouvelle catégorie.

Je peux pas expliquer ici. Un jour peut être ^^

Enfin c'est de la bidouille de script. (ajout un Sx + un sx="bestaire" et un when x au bonne endroit, plus adapter l'ordre voir le numéros des S et voila mais faut étudier un peu le script du menu. C'est pas bien compliqué)

Pixner|Offgame | Le comptoire des clikeurs


makeur pro (visiteur non enregistré) - posté le 12/11/2008 à 14:23:43.

Ok!Merci!
En fait c'est le meme systeme que pour le script de reserve d'objet.Il faut l'appeler au début du jeu!:D
Merci!!


adidi - posté le 23/02/2009 à 18:48:31. (184 messages postés)

pourquoi quand je bas un monstre il ne s'ajoute pas a la liste ? ( Monos a la rescousse ? )

je commence une aventure et je la finiré jamais


xXx-Dark-Vlad-xXx - posté le 25/04/2009 à 13:15:34. (25 messages postés)

killer of rpg maker VX

Citation:


Tres bon script jladopt mais svp jorer une idée pour ui soi encor mieu ! :
Pourvoir accéder au bestiere dans le menu si quelqu'un pourer faie sa sa sré top:fou


Monos - posté le 25/04/2009 à 13:43:43. (53843 messages postés) - misteroniro

Citation:

Pourvoir accéder au bestiere dans le menu si quelqu'un pourer faie sa sa sré top



Examine ton script de menu. C'est pas compliqué non d'une pipe.
Faut juste examiné le script du menu ajouté un S je sais pas quoi, ajouter le nom bestiaire, et copier coller a la fin du menu un potion code qui par exemple appelle la sauvegarde, tu remplaces le numéros et la ligne d'appel de la sauvegarde par celui du bestiaire.

Et pas besoin de connaitre le ruby.

Pixner|Offgame | Le comptoire des clikeurs


xXx-Dark-Vlad-xXx - posté le 28/06/2009 à 16:06:29. (25 messages postés)

killer of rpg maker VX

1. j'ai rien compris
2. SI faut si connaitre en rubis et
3. je pige vraiment rien sa va bientot fair un mois que j'essay
ton truc je compren rien rien rien rien rien!!!!!!!:feu :help:help:help:help:help:help:help:help:fache2:fache2:fache2
...


gif - posté le 28/06/2009 à 16:54:22. (3885 messages postés)

C'est con de persévérer autant, sans y arriver.


triton25 - posté le 01/07/2009 à 12:51:07. (5 messages postés)

Comment on l'ouvre le bestiaire?


padmé - posté le 01/07/2009 à 13:04:44. (53843 messages postés) - misteroniro

Citation:

# Pour appeller ce menu il suffit d'utiliser la ligne suivante :

# $scene = Scene_Liste_Monstres.new

# Cette scene renvoie au menu lorsqu'elle se termine, si vous voulez qu'elle

# ramène sur la carte plutôt qu'au menu, ajouter l'argument false :

# $scene = Scene_Liste_Monstres.new(false)



Dans l'option code dans les événements par exemple.


Edit :
En plus je ré explique comment on fait dans un de mes posts. Faut lire un peu !

Pixner|Offgame | Le comptoire des clikeurs


Rorito - posté le 24/08/2009 à 19:33:56. (43 messages postés)

Ils ont fait chier le mauvais mexicain...

Comment on fait pour choisir le type d' attaques affichées autour du polygone?
Parce que moi y a deux fois écrit "masse"

edit: Un petit screen
image

D'ailleurs il n'y a pas non plus marqué les objets qu'on peut trouver sur les monstres...

Pourquoi dans ce magnifique film qu'est Massacre à la tronçonneuse les personnages ne vont jamais aux toilettes et ne se lavent jamais les mains? No reason. Pourquoi certains aiment les saucisses et d'autres pas? No fucking reason.


Scriptômaker - posté le 30/09/2009 à 13:39:57. (1 messages postés)

Bonne Humeur

Jai trouvé comment mettre le bestiaire dans le menu

1:

allé dans le script : Scene_Menu

2 :

aller a la ligne 54

Remplacer :

Citation:


s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Vocab::game_end



par :

Citation:


s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = "Bestiaire"
s7 = Vocab::game_end



3 :

a la ligne 90
remplacer :

Citation:


when 0 # Item
$scene = Scene_Item.new
when 1,2,3 # Skill, equipment, status
start_actor_selection
when 4 # Save
$scene = Scene_File.new(true, false, false)
when 6 # End Game
$scene = Scene_End.new



par :

Citation:


when 0 # Item
$scene = Scene_Item.new
when 1,2,3 # Skill, equipment, status
start_actor_selection
when 4 # Save
$scene = Scene_File.new(true, false, false)
when 6 # End Game
$scene = Scene_End.new
when 5 #bestiaire
$scene = Scene_Liste_Monstres.new



voila

Toujour la , Jamais ici


ruinechozo - posté le 03/01/2010 à 15:04:25. (22 messages postés)

merci excatement ce qu'il me fallait :sonic:banane

Dans le monde il y a trois sortes de personnes : ceux qui savent compter et ceux qui savent pas


timtrack - posté le 09/01/2010 à 13:32:12. (608 messages postés)

Je l'ai testé, il marche, mais comment on l'assigne à une touche ?
Si c'est possible, je le mettrais peut-être dans mon jeu.:)

Passe son temps à imaginer des scénarios de projets qui ne verront jamais le jour


Tata-Monos - posté le 09/01/2010 à 13:40:47. (53843 messages postés) - misteroniro

Lien

J'ai écris un tuto pour ça !

Pixner|Offgame | Le comptoire des clikeurs


darkvadordu77 - posté le 19/01/2010 à 10:32:09. (10 messages postés)

c'est ce qu'il me falait sriptômaker;)[color=#CEDBEF][/color]


Yuann - posté le 03/03/2010 à 12:05:47. (8 messages postés)

Merci pour ce Script très utile je trouve, seulement si on suit les indication de Scriptômaker l'option "Quitter le jeu" (par défaut) ne s'affiche plus dans le menu.

Si d'autres sont dans le même cas que moi et qu'il veulent rêgler le problème voici ce qu'il faut modifier (rien de compliqué ^^).

à la ligne 61 :

Portion de code : Tout sélectionner

1
   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])



Il faut rajouter ", s7" après "s6".

Voila c'est tout ^^.


Rorito - posté le 11/03/2010 à 22:30:42. (43 messages postés)

Ils ont fait chier le mauvais mexicain...

Je dois avoir un problème avec mon script (je suis désolé) mais je n'ai pas le module qui devrait dire quels objets on peut recevoir en tuant le monstre. et je ne peux pas vérifier car le screen de Monos ne s'affiche pas. Si vous avez le temps et que vous trouvez ma requête pertinente et que vous êtes une âme généreuse et scripteur compréhensif serai-ce possible je vous en prie pitié de m'aider dans une moindre mesure à me redonner goût à la vie pitié je vous en prie?




ps: pour le screen, voir celui que j'ai posté plus haut. A noter que j'ai réussi tout seul a trouver le problème du polygone.

Pourquoi dans ce magnifique film qu'est Massacre à la tronçonneuse les personnages ne vont jamais aux toilettes et ne se lavent jamais les mains? No reason. Pourquoi certains aiment les saucisses et d'autres pas? No fucking reason.


SuperGregMaker - posté le 14/03/2010 à 16:54:03. (111 messages postés)

J'aime les trains.

C'est un peu comme un Pokedex le bestiaire dans Pokemon, isn't ? ^^

Que Dieu vous garde, j'ai plus de place chez moi ...


franck james - posté le 01/05/2010 à 18:59:41. (23 messages postés)

Rock'n'roll

Y aurait-il un petit truc à faire pour afficher une image du monstre différente dans le bestiaire que celle apparaissant dans les combats ?

Merci d'avance.

www.myspace.fr/Zizitoudurh


--ayoub-- - posté le 24/05/2010 à 17:27:19. (96 messages postés)

C'est moi la meileur

hmmmm

78


Cysiam - posté le 20/07/2010 à 16:26:50. (1 messages postés)

Rorito a dit:


Comment on fait pour choisir le type d' attaques affichées autour du polygone?
Parce que moi y a deux fois écrit "masse"




Bonjour, à la ligne 283:

Citation:

NUMBER_OF_ELEMENTS = 6



Il faut tout simplement mettre "5" a la place du 6. X)

Cela fait qu'il ne reste plus qu'un "masse" au lieu de deux.

Pour les objets qui n'apparaissent pas je ne sait pas comment faire pour que sa marche.

En espérant vous avoir aidé...


baba45 - posté le 25/10/2010 à 20:58:05. (13 messages postés)

oki ca marche mais bon il est quand même un peu a revoir ^^
j'ai pas mal galeré pour le faire fonctionner :lol mais après ca marche bien


pipo27210 - posté le 29/06/2011 à 20:27:47. (6 messages postés)

moi quand je veut appeler un script (le script en question celui du bestiaire )le jeu plante complétement en affichent un message d'erreur
Pourquoi ?
il me marque undefined local variable or method bestiaire for #<Game_Interpreter:0x1ee3208>

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Previews | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Forstale | Geex Maker | Inexistence | La Légende d'Ibabou | Les Ombres d'Ymirs | Lije | Omega Cerberus | Sarcia
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes