Un petit mot avant la présentation du script, j'ai ressorti les RPG Maker après plusieurs années d'absence, malheureusement le seul site que je visitais auparavant a fermé (la Factory :'( ), et je m'aperçois aussi du mauvais traitement que peuvent subir les scripts quand ils voyagent sur d'autres sites (pas de copie de la description ou de mes instructions, des screenshots, ou même des démos, pas de citation de la source d'où souvent une version totalement périmée, etc) Donc cette fois-ci je prend les devants et viens poster moi-même mon script Et oui, je repasse pour lire les commentaires, comme les demandes d'intégration à des CMS, donc n'hésitez pas.
Par contre sur ce forum-là je risque de ne pas poster grand-chose, vu que je compte surtout ressortir de vieux scripts et qu'ils datent tous de l'époque XP, mais on ne sait jamais !
C'est la nouvelle version de mon (très) vieux bestiaire, cette fois-ci il est directement bien configuré pour tourner sur VX que ce soit en résolution 544x416 ou avec une résolution supérieure.
Il y a quelques modifications par rapport à la précédente version : la liste des monstres utilisent deux colonnes et non plus une, l'affichage des drops des objets n'est plus buggé comme dans l'autre version présente sur ce site, et on peut switcher entre deux graphes de défense lorsqu'on appuie sur le bouton confirmer.
Attention pour ceux qui utilisent l'ancienne version J'ai changé le nom de la scene, ce n'est plus Scene_Liste_Monstres mais Scene_Bestiaire, donc changez cela dans vos scripts/évènements ! Exemple d'utilisation : Créer un évènement => Insérer un script => "$scene = Scene_Bestiaire.new"
Merci de bien lire les commentaires dans le script pour le configurer, parce que par défaut les détails de tout les monstres sont accessibles.
Deux autres images avec une configuration différente, la première montre la possibilité de cacher entièrement les monstres jamais tué, la seconde montre le script en 640x480
Spoiler:
Code:
#============================================================================== # ■ Bestiaire2.0 pour RPG Maker VX #------------------------------------------------------------------------------ # Version 2.0 (24/05/2010) # Ecrit par Krazplay #------------------------------------------------------------------------------ # Support, bugs, questions... # Voici les forums où j'ai posté personnellement ce script, laissez vos # messages dans le sujet du script pour que je les voie ! # Oniromancie => http://www.rpg-maker.fr/forum.html # RPG Maker VX => http://rpg-maker-vx.bbactif.com # RPG Creative => http://forum.rpgcreative.net # Ça risque d'être utile si votre CBS n'utilisent pas les méthodes # process_victory et process_escape par exemple, parce que je les utilise # pour compter les ennemis tués. #------------------------------------------------------------------------------ # Par défaut, ce script utilise les variables 4001 à 4000+Nbre de monstres dans # votre base de données. Assurez-vous qu'elles soient disponibles ou changez # la configuration pour en utiliser d'autres (ou ne pas en utiliser du tout) #------------------------------------------------------------------------------ # Pour appeler ce menu il suffit d'utiliser la ligne de script suivante : # $scene = Scene_Bestiaire.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_Bestiaire.new(false) #------------------------------------------------------------------------------ # Vous pouvez librement diffuser ce script, y compris des versions modifiées. # Mais vous devez laisser la provenance (auteur/site) du script original, # c'est la moindre des choses et ça aide pour le support :-) #============================================================================== 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 = true # 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, utile pour voir à quoi ressemble le bestaire. DETAILS_PAR_DEFAUT = true # 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 = 4 # Définit comment enregistrer les données # Si 0, tout est enregistré dans les variables du jeu, comme dans la première version # Si 1, tout est enregistré dans le tableau $game_system.bestaire TYPE_SAUVEGARDE = 0 # Définit quelles variables vont être utilisées dans le cas TYPE_SAUVEGARDE = 0 # 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. def self.nombre_tués(id_monstre) return $game_variables[DEPART_VARIABLES+id_monstre] if TYPE_SAUVEGARDE == 0 return $game_system.bestiaire[id_monstre] end def self.set_nombre_tués(id_monstre, nombre) $game_variables[DEPART_VARIABLES+id_monstre] = nombre if TYPE_SAUVEGARDE == 0 $game_system.bestiaire[id_monstre] = nombre end def self.ajout_nombre_tués(id_monstre, nombre) $game_variables[DEPART_VARIABLES+id_monstre] += nombre if TYPE_SAUVEGARDE == 0 $game_system.bestiaire[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 # nouvelle résolution. #======> Positionnement des éléments <======# #-------------------------------------------# # La fenêtre générale prend automatiquement tout l'écran # Taille de la police FG_TP = 24 # Description des 2 colonnes FG_COL1 = "BESTIAIRE" FG_COL2 = "(Nom)" FG_COL3 = "(Tué)" # Position des descriptions [x, y, longueur, hauteur] FG_PD1 = [10, 0, 200, 32] FG_PD2 = [300, 0, 200, 32] FG_PD3 = [455, 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, 41, 544, 370] # Nom du monstre [x, largeur max] FM_NM = [10, 300] # Nombre de monstres tués [x, largeur] # Attention alignement du texte à droite et non à gauche. FM_NMT = [200, 30]
# Position de la Fenêtre détails d'un monstre [x, y, largeur, hauteur] FD = [(Graphics.width-544)/2, (Graphics.height-416)/2, 544, 416] # Vitesse ouverture/fermeture (255 le plus rapide) FD_V = 24 # Taille de la police du nom du monstre FD_TT = 28 # 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 = [32, 0, 470, 32] # Position de l'image du monstre [x, y] FD_B = [355, 160] # Taille de la police du reste de la fenêtre FD_TP = 20 # 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 = [10, 40, 165, 24] # Points de vie FD_MP = [10, 40+24, 165, 24] # Points de magie FD_ATK = [10, 40+3*24, 165, 24] # Attaque FD_DEF = [10, 40+4*24, 165, 24] # Défense FD_SPI = [10, 40+5*24, 165, 24] # Esprit FD_AGI = [10, 40+6*24, 165, 24] # Agilité FD_EXP = [10, 40+8*24, 155, 24] # Experience FD_GOLD = [10, 40+9*24, 155+20, 24] # Argent # Mots désignants respectivement l'experience, l'or et les objets pouvant être # laissé par l'ennemi. FD_MEXP = "EXP" FD_MGOLD = "Argent" FD_MDROP = "Objets" # Position du mot FD_MDROP [x, y, longueur, hauteur] FD_DROP = [10, 40+11*24, 200, 24] # Position des objets droppé par l'ennemi [x, y, longueur, hauteur] FD_DR1 = [20, 40+12*24, 220, 24] FD_DR2 = [20, 40+13*24, 220, 24] # Graphique des défenses élémentales [x, y, rayon] FD_GDE = [290, 239, 28] ##=====> Fin positionnement des éléments <=====## end
#============================================================================== # Graphic_Def_Elem #============================================================================== class Window_Base FONT_SIZE = 20 WORD_ELEMENT_GUARD = "Déf. Elémentale" NUMBER_OF_ELEMENTS = 8 # Nombre d'éléments affichés dans le graphique K_ELEMENT_ORDER1 = [1,3,8,5,2,4,7,6] # ID des éléments affichés dans le graphique # Second jeu d'élément pour le graphe ! # Si ça ne vous intéresse pas, mettre absolument à nil comme suit : #K_ELEMENT_ORDER2 = nil K_ELEMENT_ORDER2 = [9,11,16,13,10,12,15,14] 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_Bestiaire #------------------------------------------------------------------------------ # La scène du bestiaire, tout simplement. #============================================================================== class Scene_Bestiaire 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 # Retient le jeu d'élément utilisé pour le graphe @jeu_element = 0 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 elsif @details_monstre_window.active # On change les éléments qui vont être affichés par le graphe @jeu_element = (@jeu_element + 1) % 2 @details_monstre_window.changer_jeu_d_elements(@jeu_element) # On rafraichit la fenêtre pour que ça prenne effet id_monstre = @monstres_window.data[@monstres_window.index][2] @details_monstre_window.refresh(id_monstre) 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 end # class Scene_Bestiaire
#============================================================================== # ■ Window_General #------------------------------------------------------------------------------ # Fenêtre général #============================================================================== class Window_General < Window_Base include KRAZ_SLM
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 # Deux colonnes, index à zéro lorsqu'on commence @column_max = 2 self.index = 0 # @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] + 270*(index%@column_max), (index/2 * WLH), FM_NM[1], WLH, tab_monstre[0]) self.contents.draw_text(FM_NMT[0] + 270*(index%@column_max), (index/2 * WLH),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
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+" #{Vocab.gold}", 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.weapon_id].name when 3 icon_index = $data_armors[item.armor_id].icon_index name = $data_armors[item.armor_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]+1) 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.weapon_id].name when 3 icon_index = $data_armors[item.armor_id].icon_index name = $data_armors[item.armor_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]+1) 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
def changer_jeu_d_elements(id_jeu) if id_jeu == 0 @element_order = K_ELEMENT_ORDER1 elsif id_jeu == 1 and K_ELEMENT_ORDER2 != nil @element_order = K_ELEMENT_ORDER2 end 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
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
class Game_System attr_accessor :bestiaire alias kraz_bestiaire_initialize initialize def initialize @bestiaire = [] for i in 0...$data_enemies.size @bestiaire[i] = 0 end kraz_bestiaire_initialize end end
Ce second script intègre le bestiaire dans le menu du jeu, il ne fonctionnera qu'avec le menu de base non modifié, sinon c'est uniquement du cas par cas. Cela permet essentiellement de tester le script rapidement dans un projet vierge si vous voulez voir à quoi il ressemble.
Code:
#============================================================================== # ■ Intégration du Bestiaire2.0 dans le menu de base (RPG Maker VX) #------------------------------------------------------------------------------ # par Krazplay #------------------------------------------------------------------------------ # Ceci ne fonctionnera pas si vous avez déjà des modifications dans votre # menu principal ! # Dans ce cas-là pas de miracle, soit vous modifiez votre menu vous-même, # soit vous demandez de l'aide (voir les commentaires du script Bestiaire) #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end s7 = "Bestiaire" # Ajout de s7 pour le Bestiaire # Et là dans la liste des choix j'ajoute bestiaire entre Status et Sauvegarde @command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6]) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item(0, false) # Disable item @command_window.draw_item(1, false) # Disable skill @command_window.draw_item(2, false) # Disable equipment @command_window.draw_item(3, false) # Disable status end if $game_system.save_disabled # If save is forbidden @command_window.draw_item(5, false) # Disable save end end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # Bestiaire $scene = Scene_Bestiaire.new # On lance la scene du Bestiaire when 5 # Save $scene = Scene_File.new(true, false, false) when 6 # End Game $scene = Scene_End.new end end end end
Biward
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
Sujet: Re: [VX] Bestiaire Mer 26 Mai 2010 - 13:27
Commence par te présenté et après poste tes messages ! Sinon, je le trouve pas très beau u_u améliore le un peu graphiquement !
Biward
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: [VX] Bestiaire Mer 26 Mai 2010 - 13:36
Biward à raison ouais. 'fin après tu sais, les tiens sont pas très beaux non plus hein ^^' (graphiquement hein)
C'est gentil d'avoir posté ca, mais tu n'échappe pas à la règle de 1 Post Sans Présentation = 1 averto.
Biward
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
Sujet: Re: [VX] Bestiaire Mer 26 Mai 2010 - 13:47
Enfin... Oui je sais les miens sont pas très beau non plu mais ils sont configurable intérieurement (genre image de fond ou pas, etc...) alors que la c'est window et c'est tout x)
Sinon, les textes autour des stats sont trop sérrés.
Biward
Zangther
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
Sujet: Re: [VX] Bestiaire Mer 26 Mai 2010 - 16:19
J'avais utilisé la première version de ton script bestaire ( celle pour la résolution augmentée 640 * 480 ), mais maintenant que je sais scripter je pense à en faire un moi même.
Merci du partage ( même si t'es pas présenté ).
PS : Si tu penses rester, un coup d'oeil au réglement me semble de mise.
Biward a écrit:
Commence par te présenté et après poste tes messages !
Nan mais là, je sais que c'est pas mon rôle de dire ça mais bon, les modos sont là pour faire leur travail : arrête de parler aux gens comme ça !
Krazplay
Poulet carnivore Lv.2
Inscrit le : 26/05/2010 Messages : 23
Sujet: Re: [VX] Bestiaire Jeu 27 Mai 2010 - 23:53
Biward a écrit:
Commence par te présenté et après poste tes messages !
Comme le remarque aussi Biward, tu pourrais être moins agressif.
Ce n'est pas très joli, oui, je regarderai pour des images de fond afin de cacher l'horrible windowskin de base. Les textes autour des stats ? Tu parles du graphique c'est ça ? C'est carrément le graphe que j'aimerais faire plus grand, mais après il prend trop de place, la résolution de VX a rien arrangé ^-^"
Zangther a écrit:
J'avais utilisé la première version de ton script bestaire ( celle pour la résolution augmentée 640 * 480 ), mais maintenant que je sais scripter je pense à en faire un moi même.
Merci du partage ( même si t'es pas présenté ).
PS : Si tu penses rester, un coup d'oeil au réglement me semble de mise.
En fait ce bestiaire est trèèèès vieux, c'était un de mes premiers scripts et à l'époque y en avait pas c'était surtout pour ça. Mais certains m'ont demandés une version VX plus tard, je ne pensais même pas que ce script était encore utilisé, donc j'ai fait une conversion rapide pour VX un peu honteuse. En plus la plupart des sites avaient pas la dernières version, je crois que j'ai moi même utilisé une mauvaise version quand j'ai fais la conversion VX (les drops affichés sont pas bon je crois) Bref, maintenant j'enterre définitivement les vieilles versions :p
(Pour le PS, ne t'inquiète pas, je connaissais les règles, tu reçois même un MP à l'inscription, c'est juste que j'ai mis plus de temps que je ne le pensais à faire la présentation du sujet, donc j'ai remis la présentation à plus tard)
Nusenism
Age : 33 Inscrit le : 02/02/2010 Messages : 4692
Sujet: Re: [VX] Bestiaire Ven 28 Mai 2010 - 0:19
Bah l'interface est pas si mal. Un ajout de picture surchargerai trop je trouve. Là c'est pas top parce que le windowskin est de base, mais si on en utilise un plus joli, ça doit passer pas mal non?
A part ça bah à l'époque j'ai jamais réussi à faire fonctionner un script de bestiaire, et depuis que je suis sorti de ma période de noobisme j'ai pas réessayé. Ce devrait être intéressant d'ajouter ça au menu de Lëgend pourtant, histoire d'informer le joueur sur les faiblesses des monstres qu'il a vaincu.
Mais j'ai pas vraiment compris ce passage:
Ça permet d'afficher les autres faiblesses/résistances s'il y a plus de 8 attributs, c'est ça?
Krazplay
Poulet carnivore Lv.2
Inscrit le : 26/05/2010 Messages : 23
Sujet: Re: [VX] Bestiaire Ven 28 Mai 2010 - 0:44
Mouarf, tu as le droit à une réponse rapide parce que j'ai oublié de désactiver le suivi automatique des sujets où l'on a posté >.<
Une image ne surchargera pas forcément, j'ai dis cacher la windowskin mais je sous-entendais la remplacer. De toute manière ça n'aura rien d'obligatoire, tu pourras toujours garder les fenêtres plutôt que d'utiliser des images de fond.
Si tu n'étais pas arrivé à le faire fonctionner ça venait peut-être pas de toi, je n'ai jamais surveillé les scripts, je faisais toujours un beau sujet sur la Factory avec description + explication + screens, voir démo, ça n'a pas empêché certains de juste copier-coller le script pour le mettre sur leur site/forum. De plus la source n'est quasiment jamais cité, pas de source = pas moyen de trouver facilement les maj, de rapporter les soucis, etc...
Citation :
Ça permet d'afficher les autres faiblesses/résistances s'il y a plus de 8 attributs, c'est ça?
Oui, il y a deux graphiques et appuyer sur Entrée (ou n'importe quel bouton de confirmation) permet de switcher entre les deux. Sur XP il y avait déjà 16 éléments de base, mais y en a 8 c'était que des "Anti", anti-dragon, anti-machin, etc... ça n'avait pas d'intérêt. Sur VX par contre les 16 éléments de base sont utiles, mais mettre deux graphiques en même temps c'était vraiment trop lourd, donc j'ai fais comme ça.
nicolasaitout
Habitant Lv.6
Avertissements : Banni !Inscrit le : 02/04/2010 Messages : 107
Sujet: Re: [VX] Bestiaire Jeu 24 Juin 2010 - 12:36
Super mais est-ce possible de désactivé le nombre de fois que l'on l'a tué?
Trobin
Poulet carnivore Lv.2
Inscrit le : 10/07/2010 Messages : 23
Sujet: Re: [VX] Bestiaire Mer 14 Juil 2010 - 20:01
Ton script fonctionne niquel , j'avais une idée pour avoir le bestiaire c'était de faire une quête et de l'avoir dans le menu, mais le bestiaire on l'a déjà dès le début j'aimerais savoir si on peut l'avoir après avoir finit une quête et si oui comment. Pourriez-vous m'aider s'il vous plait? J'avais appelé le script du bestiaire à la fin de la quête avec ça "$scene = Scene_Bestiaire.new" mais ca ne marche pas.
édité: Je crois avoir une solution mais je ne vais pas pouvoir l'essayer tout de suite. Ma solution est de faire une condition au début du script et qu'il s'active que si il y a un interrupteur activé que j'activerai à la fin de la quête je copierai, collerai le script dans la condition et je supprimerai celui qui n'est pas dans la condition. Puis je fais pareil pour le script du bestiaire dans le menu. Cette idée vient de mon père mais je me demande si les interrupteurs qui s'activent dans le jeu sont quand même valables dans les scripts. Merci de me dire si cette idée est bonne ou pas et me dire si les interrupteurs qui s'activent dans le jeu sont quand même valables dans les scripts.
zeb
Poulet Lv.1
Age : 32 Inscrit le : 22/07/2010 Messages : 2
Sujet: Re: [VX] Bestiaire Lun 26 Juil 2010 - 3:19
Tu as plus simple(mais le bestiaire deviendra un objet et ne sera plus dans ton menu,a toi de voir) tu créés un evenement commun que tu appelles Bestiaire en déclanchement tu met aucun.Ensuite tu fais appel de script et tu tapes : $scene = Scene_Bestiaire.new rien de plus.Ensuite tu créé un objet bestiaire :
Tu as plus simple(mais le bestiaire deviendra un objet et ne sera plus dans ton menu,a toi de voir) tu créés un evenement commun que tu appelles Bestiaire en déclanchement tu met aucun.Ensuite tu fais appel de script et tu tapes : $scene = Scene_Bestiaire.new rien de plus.Ensuite tu créé un objet bestiaire :
Comme dans le screen c'est a dire Cible : aucune ; Variation : 0 ; Dispo : menus uniquement ; et dans la case Appeler Ev.Commun tu met l'evenement commun : bestiaire .Celui que tu viens de créer
enfin dans le script a coller au dessus de main lingne 46 tu as :
POSITION_DS_MENU = 4
Tu remplace le 4 par 0 comme ceci :
POSITION_DS_MENU = 0
Et dans la partie du script a mettre dans materials tu supprimes ces lignes la(t'inquiète pas y a pas de problèmes si tu suit tout bien) :
s7 = "Bestiaire" # Ajout de s7 pour le Bestiaire
et :
when 4 # Bestiaire $scene = Scene_Bestiaire.new # On lance la scene du Bestiaire
when 5 # Save $scene = Scene_File.new(true, false, false) when 6 # End Game $scene = Scene_End.new
par celle la :
when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # End Game $scene = Scene_End.new
Ensuite très simple tu met l'objet bestiaire en récompense de ta quête et ensuite tu ouvre le menu puis objets et la tu trouveras bestiaire.Tu l'ouvre et hop : Le bestiaire s'ouvre.Si tu quitte le bestiaire(avec echap ou X si tu as laisé la configuration d'origine des touches) l'icone de selection sera sur objet ^^ Et si ca marche pas c'est que tu as déjà plusieurs menus et que l'un commande l'affichage du menu,et dans ce cas je ne suis pas dans ton pc,Je ne peut rien faire. J'espere que cela t'aura aidé (Au passage cette méthode est fortement inspirée d'un sujet dans les astuces de scripts sur un script qui est est le petit frere de celui ci...^^)
stefrpg
Poulet trizo Lv.3
Age : 33 Inscrit le : 04/04/2011 Messages : 39
Sujet: Re: [VX] Bestiaire Lun 9 Mai 2011 - 14:48
bonjour a tous ce script m’intéresse mais je voudrais changer les élément et mettre comme cela :
feu > glace > vent > terre > foudre > eau > feu et le deuxième lumière > ténèbres > lunaire > solaire > lumière
croyez vous que c'est possible
quelqun peux m'aider
stefrpg
Poulet trizo Lv.3
Age : 33 Inscrit le : 04/04/2011 Messages : 39
Sujet: Re: [VX] Bestiaire Lun 16 Mai 2011 - 16:18
up
Angelus
Poulet trizo Lv.3
Age : 33 Inscrit le : 06/06/2011 Messages : 35
Sujet: Re: [VX] Bestiaire Mar 7 Juin 2011 - 11:57
Tout d'abord, évite les double post si tu ne veux pas de problème avec les Admins.
Ensuite je pense que cela est possible mais, il faut sans doute que tu le modifies ou que quelqu'un le fasse pour toi.
matias7338
Poulet carnivore Lv.2
Age : 25 Avertissements : 1Inscrit le : 03/05/2011 Messages : 15
Sujet: Re: [VX] Bestiaire Jeu 9 Juin 2011 - 18:28
Bonsoir, je m'apelle Mathis Bref passons ... Comment fait-on si on veux rajouter des Attribus ?
EDIT : Et bonne nuit aussi, escusez moi ...
Dernière édition par matias7338 le Jeu 9 Juin 2011 - 18:30, édité 1 fois (Raison : J'ai oublié d'écrire ca ....)