Partagez
Aller en bas
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Bestiaire

le Ven 3 Juin 2016 - 21:57
Hello !
J'essaye d'implémenter un système que j'aime beaucoup dans les RPG, qui est le système de Bestiaire répertoriant tous les ennemis existant au sein du jeu.
J'utilise le script Yanfly Engine RD - Bestiary + Scan et tout fonctionne bien...je crois...jusqu'au moment le plus important, celui d'ouvrir le Bestiaire
Et une boîte de dialogue me dit précisément ceci :

Jeu a écrit:Script "Bestiaire" line 1173: NameError occured

uninitialized constant Scene_Bestiary::Window_Enemy_List

Une explication ?
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Bestiaire

le Ven 3 Juin 2016 - 22:19
Si tu pouvais mettre également le script en question ici.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Ven 3 Juin 2016 - 22:56
Oups, j'avais oublié ce détail.
Voici :

Yanfly Engine RD - Bestiary + Scan:

Code:

#===============================================================================
#
# Yanfly Engine RD - Bestiary + Display Scanned Enemy
# Traduction by Garruk
# Last Date Updated: 2009.06.13
# Level: Easy, Normal, Hard, Lunatic
#
# Similar to the Display Skill Query script, I've made one for enemies. This was
# mostly to replace my Display Target Data script, considering it didn't display
# much data at all about the target. This one was also made on the account of
# making a proper scan skill property in addition to different parts of enemy
# data that it can scan.
#
# I've disliked scan systems where you would have to keep rescanning an enemy
# to see its HP, MP, etc. It felt counterproductive on the player side since
# valuable turns are wasted just to view some numbers. This system allows you to
# pull up enemy data upon enemy selection (where I believe it matters most).
# After all, providing convenience for the player is absolutely important since
# it reduces metagaming, which is something that should never have to happen
# for an RPG Maker project.
#
# For the users who fear giving too much information to their players, users can
# disable parts of the script and prevent certain pages from appear at all. You
# can limit how much and how little you want to show your players through <hide>
# tags, too, for the enemies' noteboxes.
#
# Since the May 27th update, a bestiary option is created for the main menu.
# You can access this menu and view all of the scanned data from the enemies
# you've discovered. This option is accessible once the bestiary switch is on.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.06.10 - Compatibility added for Enemy Level Control.
# o 2009.06.09 - Small fix to bestiary calculation for not requiring scan.
# o 2009.05.27 - Bestiary added.
#                Monsters can now have more than one boss type.
# o 2009.04.27 - MAJOR BUGFIX: Fixed a save game corrupting bug.
# o 2009.04.21 - Finished and publicized.
# o 2009.04.20 - Started script.
#===============================================================================
# How to Use: Normal Mode
#===============================================================================
#
# La première serie comme <scan whole> est à placer dans les commentaires de la compétence
# La deuxième comme <hide whole> est à mettre dans les commentaires de l'ennemi
# Le bestiaire est desactivé par défaut
#
# ----------------------------------------------------------------------------
# Placing these tags into a skill's notebox will reveal specific scan data. The
# scan data will appear for all enemies of the same enemy type, but each indi-
# vidual enemy will still possess their own modifiers.
#
# <scan whole>
# Permet de voir toutes les fenêtre que l'ennemi cache
#
# <scan hp mp>
# Affiche seulement les HP et MP de l'ennemi
#
#
#
#
# <scan stats>
# Affiche les stats de l'ennemo
#
#
#
# <scan skills>
# Affiche les compétences de l'ennemi
#
#
#
# <scan elements>
# Affiche les resistance et faiblesse par rapport aux éléments
#
#
#
# <scan status effects> or <scan states>
# Affiche les resistance et faiblesse par rapport aux effets négatifs
#
#
#
# <scan steal>
# Permet de voir les objet à volé sur l'ennemi
#
#
# <scan spoils>
# Permet de voir différents informations comme l'argent et l'expérience
#
#
# <scan drops>
# Permet de voir les butin que l'ennemi laisse en fin de combat
#
#
# <scan description>
# Permet de voir la description de l'ennemi
#
#
#
#
#===============================================================================
# How to Use: Hard Mode
#===============================================================================
#
# <boss type x> or <boss type x,x>
#  A placer dans les commentaires de l'ennemi
# <boss type x> l'ennemi est un mini boss
# <boss type x,x> l'ennemi est un boss
#
# Ses commentaires sont à placer dans la partie ennemi
# Ils ne seront jamais visible. Si vous lancez un <scan hp mp> pour voir les HP et MP du monstres et que
# dans les commentaires de ce dernier vous avez mis <hide hp_mp> ils n'apparaitront pas
# <hide whole>
# Prevents everything from being shown at all for that enemy.
#
# <hide hp_mp>
# Cache les HP et MP
#
# <hide stats>
# Cache les stats
#
# <hide skills>
# Cache les sorts
#
# <hide elements>
# Cache la résistance et faiblesse par rapport aux éléments
#
# <hide status effects> or <hide states>
# Cache la résistance et faiblesse par rapport aux effets négatifs
#
# <hide steal>
# Cache les objets à voler
# <hide skills>
# <hide spoils>
# Prevents victory spoil information from being shown for that enemy.
#
# <hide drops>
# Cache les informations comme l'argent et l'expérience
#
# If you might have noticed, there's no hide version for description. This is
# because if you simply don't add the enemy extra notes description to the hash,
# they won't appear at all. It's easier to manage that way instead.
#
#===============================================================================
#
# Compatibility
# - Works With: KGC's ExtraDropItem, Steal
# - Alias: Game_Battler, skill_effect
# - Alias: Game_Enemy, initialize, transform, escape, perform_collapse
# - Alias: Scene_Battle, create_info_viewport, update_target_enemy_selection
#
#===============================================================================
# Credits:
# KGC for Window_Command imports.
#===============================================================================
 
$imported = {} if $imported == nil
$imported["DisplayScannedEnemy"] = true
 
module YE
  module MENU
    module MONSTER
    
      #------------------------------------------------------------------------
      # BESTIARY RELATED
      #------------------------------------------------------------------------
    
      # The following will govern the rules which the bestiary scene will abide
      # by. Be sure to adjust it accordingly to your needs.
      BESTIARY_TITLE  = "Bestiaire"    # Nom dans le menu.
      BESTIARY_SWITCH = 2            # Interrupteur pour activer le bestiaire dans le menu?
      BESTIARY_LIST  = "%s Liste"      # Le texte qui suit le type d'ennemi exemple "boss".
      BESTIARY_MASK  = "?"            # Masque les statistiques encore inconnus.
    
      #  La chose suivante est un tableau a eu l'habitude de cacher des monstres du bestiaire
      # Saisir l'ID'S des monstres que vous voulez cacher.
      # Par défaut les monstres sont automiquement cacher.
      HIDDEN_MONSTERS = []
    
      #La chose suivante détermine l'ordre de l'affichage des monstres dans le bestiaire
      # si vous alphabétisez la liste de monstre, ceci n'aura aucun effet..
      #
      BESTIARY_ORDER = [1,2,3,4 ]
    
      # Informations des catégories dans le bestiaire
      #
      CATEGORIZE_TEXT = "Shift: changement de catégories"
      CATEGORIZE_HELP = "Sélectionner un type de catégorie"
      CATEGORIZE_VIEW = "Page %s"
      CATEGORIZE_BUTTON = Input::SHIFT
    
      # La page de droit dans le bestiaire les numéros sont les ICONS de l'iconsets
      #
      MENU_FONT_SIZE  = 16
      BESTIARY_INFO  = "Information Bestiaire"
      TEXT_COMPLETION = "Bestiaire d'achèvement"
      RATE_COMPLETION = ""
      ICON_COMPLETION = 141
      TEXT_DISCOVERED = "Ennemis découvert"
      ICON_DISCOVERED = 196
      TEXT_ENCOUNTERS = "Total d'ennemis rencontrés"
      TEXT_DEFEATED  = "Total d'ennemis vaincus"
      TEXT_ESCAPED    = "Total d'ennemis échappés"
      TEXT_TYPE_DIS  = "%s découvert"
      TEXT_TYPE_ENC  = "%s rencontrés"
      TEXT_TYPE_DEF  = "%s Vaincu"
      TEXT_TYPE_ESC  = "%s Echappé"
    
      #------------------------------------------------------------------------
      # SCAN WINDOW RELATED
      #------------------------------------------------------------------------
    
      # La touche pour faire apparaitre le scan en combat
      ENEMY_SCAN_BUTTON = Input::A
    
      # True vous devez utilisez une compétence pour voir les fenêtres
      # False aucune compétence n'est nécessaire
      REQUIRE_SCAN  = true
    
      # Informations pendant le combat.
      HELP_WINDOW_TX = "Appuyez sur Maj pour afficher les données ennemi."
      HELP_WINDOW_ON = true            # Activer le Windowskin .
      HELP_WINDOW_X  = 0              # La position X
      HELP_WINDOW_Y  = 0              # La position Y.
      HELP_WINDOW_W  = 544            # la largeur de la fenêtre.
      HELP_WINDOW_O  = 255            # L'oppacité du windowskins
    
      # This affects how you want the scan to appear.
      ENEMY_NAME = "%s données"
    
      # This displays the title information at the very top of the scan window.
      # Most of the strings are explained by the notes to the side.
      DATA_LEFT  = "<<"            # This appears if page can be moved back.
      DATA_PAGE1 = "Information"  # This appears if only one page of info.
      DATA_PAGES = "Page %d/%d"    # This appears if more than one page of info.
      DATA_RIGHT = ">>"            # This appears if page can move right.
      DATA_CATEGORY_COLOUR = 4    # This affects category text colour.
    
      # This is the sound played when flipping through the various pages.
      # Set it to nil if you don't want a sound to play.
      PAGE_SOUND = RPG::SE.new("Wind7", 80, 125)
    
      # Set this to true if you would rather the scan display the page info
      # type rather than Page X/Y. The titles following correspond to the pages'
      # titles should you decide to display them.
      REPLACE_PAGE_MSG = true
      TITLE_UNKNOWN    = "Inconnu"
    
      # This affects the information shown on the first page of the scan.
      # The first page shows HP, general stats, and states if the enemy is
      # under the effects of any.
      SHOW_GENERAL  = true
      TITLE_GENERAL  = "Infos générales"
      GAUGE_HEIGHT  = 9        # This affects the gauge height.
      EXHAUST_COLOUR = 7        # This adjusts the exhaustion colour.
      FONT_SIZE      = 16      # Sets font size for smaller text.
      HIDDEN_HP      = "?????"  # If the enemy is unscanned or hides HP.
      HIDDEN_MP      = "?????"  # If the enemy is unscanned or hides MP.
      DATA_STATES    = "Effets d'état"  # Category for affected states.
      HIDDEN_STAT    = "???"    # If the enemy is unscanned or hides stats.
      DATA_ATK      = "Attaque"    # For attack.
      DATA_DEF      = "Défense"    # For defense.
      DATA_SPI      = "Magie"    # For spirit.
      DATA_AGI      = "Dextérité"    # For agility.
      DATA_HIT      = "Parade"    # For hit rate.
      HIDE_HIT      = false    # Set this to true if you wish to hide Hit.
      DATA_EVA      = "Evasion"    # For evasion rate.
      HIDE_EVA      = false    # Set this to true if you wish to hide Eva.
      DATA_CRI      = "Critique"    # For critical rate.
      HIDE_CRI      = false    # Set this to true if you wish to hide Cri.
      DATA_ODDS      = "Chance"    # For odds value.
      HIDE_ODDS      = true    # Set this to true if you wish to hide Odds
    
      # The display types alter how HP and MP is shown for scanned enemies.
      # Type 1: Current HP
      # Type 2: Current HP/MaxHP
      # Type 3: Percentage of Current HP/MaxHP
      # The same goes for MP display type.
      HP_DISPLAY_TYPE = 2
      MP_DISPLAY_TYPE = 2
    
      # C'est ici que vous controlez les ennemis, boss, sous boss etc
      # Icon du type de monstres, la couleur des barres de HP
      # La couleur des barres de MP
      # Appellation de l'ennemi
      #
      BOSS_TYPES ={
      # Type  =>  [Icon,HPIc,HPC1,HPC2,MPIc,MPC1,MPC2, Type Name, Pural]
          0  =>  [ 118,  11664,  18,  20, 11665,  22,  23, "Monstre", "Monstres"],
          1  =>  [ 243, 11664,  18,  20, 11665,  22,  23, "Monstre de chasse", "Monstre de chasse"],
          2  =>  [ 6675,  11664,  18,  20, 11665,  22,  23, "Boss", "Boss"],
      } # Do not remove this.
    
      # This is for the bestiary and how you would like the order to appear.
      TYPE_ORDERING = [0, 1, 2]
    
      # Les ICON dans la page d'information
      ICON_HIGH = 9748  # Quand le monstre à un boost par exemple attaque +
      ICON_LOW  = 9764  #  Quand les statistiques du monstre sont afflaiblis par exemple attaque -
      ICON_ATK  = 11603    # Icon for ATK
      ICON_DEF  = 11604    # Icon for DEF
      ICON_SPI  = 11605    # Icon for SPI
      ICON_AGI  = 11607    # Icon for AGI
      ICON_HIT  = 11609  # Icon for HIT
      ICON_EVA  = 11610  # Icon for EVA
      ICON_CRI  = 11611  # Icon for CRI
      ICON_ODDS = 11613  # Icon for ODD
    
      # This affects info displayed on the skill info page. Skills only appear
      # if the monster has those skills in its action list. Otherwise, this
      # page will not appear at all.
      SHOW_SKILLS    = true
      TITLE_SKILLS  = "Info de compétences"
      DATA_SKILLS    = "Nom de compétences"
      VIEW_SKILLS1  = "%d ."
      VIEW_SKILLS2  = "%d ."
    
      #Les ICON qui représentent la faiblesse ou la resistance d'un monstres
      # par rapport à un élément
      SHOW_ELEMENTS  = true
      TITLE_ELEMENTS = "Affinité élément"
      ICON_E_RATE_U  = 9        # Icon used for unknown element rates
      ICON_E_RATE_Z  = 96      # Icon used for element rate Z.
      ICON_E_RATE_A  = 260      # Icon used for element rate A.
      ICON_E_RATE_B  = 261      # Icon used for element rate B.
      ICON_E_RATE_C  = 262      # Icon used for element rate C.
      ICON_E_RATE_D  = 263      # Icon used for element rate D.
      ICON_E_RATE_E  =  264    # Icon used for element rate E.
      ICON_E_RATE_F  = 265      # Icon used for element rate F.
      ELEMENT_HASH ={
      # These hashes allow you to construct various rows in the element page.
      # There's a maximum fit of 10 elements per row.
      "L'attaque physique" => [
      # These are the element ID's.
      [  11],
      # These are the element icons.
      [  1572]
      ], # Next row
    
      "Magie" => [
      # These are the element ID's.
      [  1,  2,  3,  4,  5,  6,  7,  8],
      # These are the element icons.
      [ 104, 105, 106, 108, 109, 107, 111, 110]
      ], # Next row
    
      } # Do not remove this.
    
      # Pareil qu'au dessus mais pour les états néfastes
      #
      SHOW_STATES    = true
      TITLE_STATES  = "Altération d'état"
      ICON_S_RATE_U  = 94      # Icon used for unknown status rates.
      ICON_S_RATE_Z  = 96      # Icon used for status rate Z.
      ICON_S_RATE_A  = 260      # Icon used for status rate A.
      ICON_S_RATE_B  = 261      # Icon used for status rate B.
      ICON_S_RATE_C  = 262      # Icon used for status rate C.
      ICON_S_RATE_D  = 263      # Icon used for status rate D.
      ICON_S_RATE_E  = 264      # Icon used for status rate E.
      ICON_S_RATE_F  = 265      # Icon used for status rate F.
      STATES_HASH ={
      # These hashes allow you to construct various rows in the states page.
      # There's a maximum fit of 10 states per row.
      "" => [1, 2, 3, 4, 5, 8],
    "Altération d'état" => [6, 7, 10, 11, 38, 26],
      "Diminution" => [18, 19, 20, 21],
    
      } # Do not remove this.
    
      # Si vous utlisez le script de KGC qui permet de voler les objets
      #
      #
      SHOW_STEAL    = true
      TITLE_STEAL    = "Objet à voler"
      DATA_S_ITEM    = "Nom des objets"
      DATA_S_CHANCE  = "Chance"
    
      # This affects info displayed for the spoils page. Note that you can
      # choose to activate this page if an enemy of a type dies.
      SHOW_SPOILS    = true
      TITLE_SPOILS  = "Information sur l'ennemi"
      DEATH_SPOILS  = true      # Set to true if you wish to reveal spoils info
                                # when an enemy dies.
      DATA_GOLD      = "Xenny"    # Message used to indicate gold drop.
      VIEW_GOLD      = "%d Xenny" # How the gold gain will appear.
      ICON_GOLD      = 8386 #205      # Icon used for gold drop.
      DATA_EXP      = "Exp"    # Message used to indicate experience gain.
      VIEW_EXP      = "%d Exp"  # How the exp gain will appear.
      ICON_EXP      = 241# 62        # Icon used for exp gain.
      DATA_ENCOUNTER = "Rencontres" # Message used to indicate encounters.
      VIEW_ENC1      = "%d fois"    # How the encounters will appear. Singular.
      VIEW_ENC2      = "%d fois"  # How the encounters will appear. Plural.
      ICON_ENCOUNTER = 48 #63          # Icon used for encounters.
      DATA_KILLED    = "Vaincu"  # Message used to indicate defeats.
      VIEW_KILLED1  = "%d Tué"    # How the defeats will appear. Singular.
      VIEW_KILLED2  = "%d Tués"  # How the defeats will appear. Plural.
      ICON_KILLED    = 112 #157          # Icon used for defeats.
      DATA_ESCAPED  = "Echappé"    # Message used to indicate escapes.
      VIEW_ESCAPED1  = "%d Fuite"    # How the defeats will appear. Singular.
      VIEW_ESCAPED2  = "%d Fuite"    # How the defeats will appear. Plural.
      ICON_ESCAPED  = 9778 #155          # Icon used for escapes.
      SPOIL_DROPS    = false    # Draw drops for the Spoils page?
      DATA_DROPS    = "Drops"  # Message used to indicate drops.
    
      # For those that would like a separate page for drops, use this page.
      # This affects all of the information relative to drops anyway.
      SHOW_DROPS    = true
      TITLE_DROPS    = "butin de victoire"
      DEATH_DROPS    = true      # Set to true if you wish to reveal spoils info
                                # when an enemy dies.
      DATA_D_ITEM    = "Nom du butin"
      DATA_D_CHANCE  = "Chance"
    
    
      # This affects the enemy notes section which requires Lunatic modifying.
      # This page can be about anything you want to write about.
      SHOW_NOTES            = true
      TITLE_NOTES          = "Notes"
      NOTE_PAGE_WIDTH      = 700
      NOTE_PAGE_TEXT_SIZE  = 16
      NOTE_PAGE_TEXT_COLOUR = 0
    
    end # MONSTER
  end # MENU
end # YE
 
#===============================================================================
# How to Use: Lunatic Mode
#===============================================================================
#
# This part allows you to input your own custom notes and whatnot. Custom notes
# page will only appear for enemies that are listed in the note hash beneath the
# Lunatic Mode section.
#
# The process is pretty simple. Just follow the template below.
#
#    ENEMY_NOTES ={
#      enemy_id => "This would be the first line| and this would be the next!",
#    } # Do not remove this.
#
# Enter the enemy's ID number where "enemy_id" is. Following the "=>" input
# the custom notes you'd like for that enemy to display. If you wish to add
# line breaks to notes, add a | where you would like the break to appear. Now
# while they do appear in the notebox, they are confined by the note page's
# width and will shrink if the lines end up being too long. You can adjust the
# note page's width in the part before the Lunatic Mode instructions.
#
#===============================================================================
 
module YE
  module HASH
  
    ENEMY_NOTES ={  # On met ici la description des ennemis la barre | permet de faire un retour à la ligne
        1  => "Gluant|Un monstre qui sert à rien| Il est faible et aime fuir le combat",
        2  => "Le 2 est ID du monstres mettre la description ici",
 
 
    } # Ne pas retirer, inutile de modififier le reste
      
  end #module HASH
end #module YE
 
#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================
 
module YE
  module REGEXP
    module BASEITEM
    
      SCAN_WHOLE = /<(?:SCAN_WHOLE|scan whole)>/i
      SCAN_HP_MP = /<(?:SCAN_HP_MP|scan hp mp)>/i
      SCAN_STATS = /<(?:SCAN_STATS|scan stats)>/i
      SCAN_SKILL = /<(?:SCAN_SKILLS|scan skills)>/i
      SCAN_ELEM  = /<(?:SCAN_ELEMENTS|scan elements)>/i
      SCAN_STATE = /<(?:SCAN_STATUS_EFFECTS|scan status effects|scan states)>/i
      SCAN_SPOIL = /<(?:SCAN_SPOILS|scan spoils)>/i
      SCAN_DROPS = /<(?:SCAN_DROPS|scan drops)>/i
      SCAN_STEAL = /<(?:SCAN_STEAL|scan steal)>/i
      SCAN_DESC  = /<(?:SCAN_DESCRIPTION|scan description)>/i
    
    end # BASEITEM
    module ENEMY
    
      BOSS_TYPE  = /<(?:BOSS_TYPE|boss type)[ ]*(\d+(?:\s*,\s*\d+)*)>/i
    
      HIDE_WHOLE = /<(?:HIDE_WHOLE|hide whole)>/i
      HIDE_HP_MP = /<(?:HIDE_HP_MP|hide hp mp)>/i
      HIDE_STATS = /<(?:HIDE_STATS|hide stats)>/i
      HIDE_SKILL = /<(?:HIDE_SKILLS|hide skills)>/i
      HIDE_ELEM  = /<(?:HIDE_ELEMENTS|hide elements)>/i
      HIDE_STATE = /<(?:HIDE_STATUS_EFFECTS|hide status effects|hide states)>/i
      HIDE_SPOIL = /<(?:HIDE_SPOILS|hide spoils)>/i
      HIDE_DROPS = /<(?:HIDE_DROPS|hide drops)>/i
      HIDE_STEAL = /<(?:HIDE_STEAL|hide steal)>/i
    
    end # ENEMY
  end # REGEXP
 
  module_function
  #--------------------------------------------------------------------------
  # Convert Array to Integer
  #--------------------------------------------------------------------------
  def convert_integer_array(array)
    result = []
    for i in array
      case i
      when Range; result += i.to_a
      when Integer; result.push(i)
      end
    end
    return result
  end
 
  #--------------------------------------------------------------------------
  # Converted Constants
  #--------------------------------------------------------------------------
  ENEMY_LIST = convert_integer_array(MENU::MONSTER::BESTIARY_ORDER)
  HIDDEN_ENEMY = convert_integer_array(MENU::MONSTER::HIDDEN_MONSTERS)
 
end # YE
 
#===============================================================================
# RPG::Enemy
#===============================================================================
 
class RPG::Enemy
 
  #--------------------------------------------------------------------------
  # Yanfly_Cache_DSE
  #--------------------------------------------------------------------------
  def yanfly_cache_enemy_dse
    @hide_whole = false; @hide_hp_mp = false; @hide_stats = false
    @hide_elem = false; @hide_state = false; @hide_desc = false
    @hide_skill = false; @hide_spoil = false; @hide_drops = false
    @hide_steal = false
    @boss_type = []
  
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when YE::REGEXP::ENEMY::BOSS_TYPE
        $1.scan(/\d+/).each { |num|
        if num.to_i >= 0
          @boss_type.push(num.to_i)
        end }
      
      when YE::REGEXP::ENEMY::HIDE_WHOLE
        @hide_whole = true
      when YE::REGEXP::ENEMY::HIDE_HP_MP
        @hide_hp_mp = true
      when YE::REGEXP::ENEMY::HIDE_STATS
        @hide_stats = true
      when YE::REGEXP::ENEMY::HIDE_SKILL
        @hide_skill = true
      when YE::REGEXP::ENEMY::HIDE_ELEM
        @hide_elem = true
      when YE::REGEXP::ENEMY::HIDE_STATE
        @hide_state = true
      when YE::REGEXP::ENEMY::HIDE_SPOIL
        @hide_spoil = true
      when YE::REGEXP::ENEMY::HIDE_DROPS
        @hide_drops = true
      when YE::REGEXP::ENEMY::HIDE_STEAL
        @hide_steal = true
    
      end
    }
    @boss_type = [0] if @boss_type == []
  end # end yanfly_cache_cse
 
  #--------------------------------------------------------------------------
  # Boss Type
  #--------------------------------------------------------------------------
  def boss_type
    yanfly_cache_enemy_dse if @boss_type == nil
    return @boss_type
  end
 
  #--------------------------------------------------------------------------
  # Hide Scan
  #--------------------------------------------------------------------------
  def hide_whole
    yanfly_cache_enemy_dse if @hide_whole == nil
    return @hide_whole
  end
  def hide_hp_mp
    yanfly_cache_enemy_dse if @hide_hp_mp == nil
    return @hide_hp_mp
  end
  def hide_stats
    yanfly_cache_enemy_dse if @hide_stats == nil
    return @hide_stats
  end
  def hide_skill
    yanfly_cache_enemy_dse if @hide_skill == nil
    return @hide_skill
  end
  def hide_elem
    yanfly_cache_enemy_dse if @hide_elem == nil
    return @hide_elem
  end
  def hide_state
    yanfly_cache_enemy_dse if @hide_state == nil
    return @hide_state
  end
  def hide_spoil
    yanfly_cache_enemy_dse if @hide_spoil == nil
    return @hide_spoil
  end
  def hide_drops
    yanfly_cache_enemy_dse if @hide_drops == nil
    return @hide_drops
  end
  def hide_steal
    yanfly_cache_enemy_dse if @hide_steal == nil
    return @hide_steal
  end
 
end # RPG::Enemy
 
#===============================================================================
# RPG::BaseItem
#===============================================================================
class RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # Yanfly_Cache_DSE
  #--------------------------------------------------------------------------
  def yanfly_cache_baseitem_dse
    @scan_whole = false; @scan_hp_mp = false; @scan_stats = false
    @scan_elem = false; @scan_state = false; @scan_desc = false
    @scan_skill = false; @scan_spoil = false; @scan_drops = false
    @scan_steal = false
  
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when YE::REGEXP::BASEITEM::SCAN_WHOLE
        @scan_whole = true
      when YE::REGEXP::BASEITEM::SCAN_HP_MP
        @scan_hp_mp = true
      when YE::REGEXP::BASEITEM::SCAN_STATS
        @scan_stats = true
      when YE::REGEXP::BASEITEM::SCAN_SKILL
        @scan_skill = true
      when YE::REGEXP::BASEITEM::SCAN_ELEM
        @scan_elem = true
      when YE::REGEXP::BASEITEM::SCAN_STATE
        @scan_state = true
      when YE::REGEXP::BASEITEM::SCAN_SPOIL
        @scan_spoil = true
      when YE::REGEXP::BASEITEM::SCAN_DROPS
        @scan_drops = true
      when YE::REGEXP::BASEITEM::SCAN_STEAL
        @scan_steal = true
      when YE::REGEXP::BASEITEM::SCAN_DESC
        @scan_desc = true
    
      end
    }
  end # end yanfly_cache_cse
 
  #--------------------------------------------------------------------------
  # Skill Scan
  #--------------------------------------------------------------------------
  def scan_whole
    yanfly_cache_baseitem_dse if @scan_whole == nil
    return @scan_whole
  end
  def scan_hp_mp
    yanfly_cache_baseitem_dse if @scan_hp_mp == nil
    return @scan_hp_mp
  end
  def scan_stats
    yanfly_cache_baseitem_dse if @scan_stats == nil
    return @scan_stats
  end
  def scan_skill
    yanfly_cache_enemy_dse if @scan_skill == nil
    return @scan_skill
  end
  def scan_elem
    yanfly_cache_baseitem_dse if @scan_elem == nil
    return @scan_elem
  end
  def scan_state
    yanfly_cache_baseitem_dse if @scan_state == nil
    return @scan_state
  end
  def scan_spoil
    yanfly_cache_baseitem_dse if @scan_spoil == nil
    return @scan_spoil
  end
  def scan_drops
    yanfly_cache_baseitem_dse if @scan_drops == nil
    return @scan_drops
  end
  def scan_steal
    yanfly_cache_baseitem_dse if @scan_steal == nil
    return @scan_steal
  end
  def scan_desc
    yanfly_cache_baseitem_dse if @scan_desc == nil
    return @scan_desc
  end
 
end # RPG::BaseItem
 
#===============================================================================
# Game Battler
#===============================================================================
 
class Game_Battler
 
  #--------------------------------------------------------------------------
  # alias skill_effect
  #--------------------------------------------------------------------------
  alias skill_effect_dse skill_effect unless $@
  def skill_effect(user, skill)
    skill_effect_dse(user, skill)
    if user.actor? and !self.actor?
      if skill.scan_hp_mp or skill.scan_whole
        $game_party.scan_hp_mp.push(enemy.id) unless $game_party.scan_hp_mp.include?(enemy.id)
      end
      if skill.scan_stats or skill.scan_whole
        $game_party.scan_stats.push(enemy.id) unless $game_party.scan_stats.include?(enemy.id)
      end
      if skill.scan_skill or skill.scan_whole
        $game_party.scan_skill.push(enemy.id) unless $game_party.scan_skill.include?(enemy.id)
      end
      if skill.scan_state or skill.scan_whole
        $game_party.scan_state.push(enemy.id) unless $game_party.scan_state.include?(enemy.id)
      end
      if skill.scan_elem or skill.scan_whole
        $game_party.scan_elem.push(enemy.id) unless $game_party.scan_elem.include?(enemy.id)
      end
      if skill.scan_spoil or skill.scan_whole
        $game_party.scan_spoil.push(enemy.id) unless $game_party.scan_spoil.include?(enemy.id)
      end
      if skill.scan_drops or skill.scan_whole
        $game_party.scan_drops.push(enemy.id) unless $game_party.scan_drops.include?(enemy.id)
      end
      if skill.scan_steal or skill.scan_whole
        $game_party.scan_steal.push(enemy.id) unless $game_party.scan_steal.include?(enemy.id)
      end
      if skill.scan_desc or skill.scan_whole
        $game_party.scan_desc.push(enemy.id) unless $game_party.scan_desc.include?(enemy.id)
      end
    end
  end
 
end # Game_Battler
 
#===============================================================================
# Game Party
#===============================================================================
 
class Game_Party < Game_Unit
 
  #--------------------------------------------------------------------------
  # Public Instance Variables
  #--------------------------------------------------------------------------
  attr_writer :monsters_encounter
  attr_writer :monsters_defeated
  attr_writer :monsters_escaped
 
  attr_writer :scan_hp_mp
  attr_writer :scan_stats
  attr_writer :scan_skill
  attr_writer :scan_state
  attr_writer :scan_elem
  attr_writer :scan_spoil
  attr_writer :scan_drops
  attr_writer :scan_steal
  attr_writer :scan_desc
 
  #--------------------------------------------------------------------------
  # Definitions
  #--------------------------------------------------------------------------
  def monsters_encounter
    @monsters_encounter = {} if @monsters_encounter == nil
    return @monsters_encounter
  end
  def monsters_defeated
    @monsters_defeated = {} if @monsters_defeated == nil
    return @monsters_defeated
  end
  def monsters_escaped
    @monsters_escaped = {} if @monsters_escaped == nil
    return @monsters_escaped
  end
 
  #--------------------------------------------------------------------------
  # Definitions
  #--------------------------------------------------------------------------
  def scan_hp_mp
    @scan_hp_mp = [] if @scan_hp_mp == nil
    return @scan_hp_mp
  end
  def scan_stats
    @scan_stats = [] if @scan_stats == nil
    return @scan_stats
  end
  def scan_skill
    @scan_skill = [] if @scan_skill == nil
    return @scan_skill
  end
  def scan_state
    @scan_state = [] if @scan_state == nil
    return @scan_state
  end
  def scan_elem
    @scan_elem = [] if @scan_elem == nil
    return @scan_elem
  end
  def scan_spoil
    @scan_spoil = [] if @scan_spoil == nil
    return @scan_spoil
  end
  def scan_drops
    @scan_drops = [] if @scan_drops == nil
    return @scan_drops
  end
  def scan_steal
    @scan_steal = [] if @scan_steal == nil
    return @scan_steal
  end
  def scan_desc
    @scan_desc = [] if @scan_desc == nil
    return @scan_desc
  end
 
end
 
#===============================================================================
# Game Enemy
#===============================================================================
 
class Game_Enemy < Game_Battler
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_dse initialize unless $@
  def initialize(index, enemy_id)
    initialize_dse(index, enemy_id)
    $game_party.monsters_encounter = {} if $game_party.monsters_encounter == nil
    if $game_party.monsters_encounter[enemy_id] == nil
      $game_party.monsters_encounter[enemy_id] = 0
    end
    $game_party.monsters_encounter[enemy_id] += 1 unless $scene.is_a?(Scene_Bestiary)
  end
 
  #--------------------------------------------------------------------------
  # alias Transform
  #--------------------------------------------------------------------------
  alias transform_dse transform unless $@
  def transform(enemy_id)
    transform_dse(enemy_id)
    $game_party.monsters_encounter = {} if $game_party.monsters_encounter == nil
    if $game_party.monsters_encounter[enemy_id] == nil
      $game_party.monsters_encounter[enemy_id] = 0
    end
    $game_party.monsters_encounter[enemy_id] += 1
  end
 
  #--------------------------------------------------------------------------
  # alias Collapse
  #--------------------------------------------------------------------------
  alias perform_collapse_dse perform_collapse unless $@
  def perform_collapse
    perform_collapse_dse
    if $game_temp.in_battle and dead?
      if YE::MENU::MONSTER::DEATH_SPOILS
        $game_party.scan_spoil.push(enemy.id) unless $game_party.scan_spoil.include?(enemy.id)
      end
      if YE::MENU::MONSTER::DEATH_DROPS
        $game_party.scan_drops.push(enemy.id) unless $game_party.scan_drops.include?(enemy.id)
      end
      $game_party.monsters_defeated  = {} if $game_party.monsters_defeated == nil
      if $game_party.monsters_defeated[enemy_id] == nil
        $game_party.monsters_defeated[enemy_id] = 0
      end
      $game_party.monsters_defeated[enemy.id] += 1
    end
  
  end
 
  #--------------------------------------------------------------------------
  # alias Escape
  #--------------------------------------------------------------------------
  alias escape_dse escape unless $@
  def escape
    $game_party.monsters_escaped  = {} if $game_party.monsters_escaped == nil
    if $game_party.monsters_escaped[enemy_id] == nil
      $game_party.monsters_escaped[enemy_id] = 0
    end
    $game_party.monsters_escaped[enemy.id] += 1
    escape_dse
  end
 
  #--------------------------------------------------------------------------
  # Encounter Details
  #--------------------------------------------------------------------------
  def encounters_dse
    if $game_party.monsters_encounter[enemy.id] == nil
      $game_party.monsters_encounter[enemy.id] = 0
    end
    return $game_party.monsters_encounter[enemy.id]
  end
  def defeated_dse
    if $game_party.monsters_defeated[enemy.id] == nil
      $game_party.monsters_defeated[enemy.id] = 0
    end
    return $game_party.monsters_defeated[enemy.id]
  end
  def escaped_dse
    if $game_party.monsters_escaped[enemy.id] == nil
      $game_party.monsters_escaped[enemy.id] = 0
    end
    return $game_party.monsters_escaped[enemy.id]
  end
 
end # Game_Enemy
 
#==============================================================================
# Window_Command (imported from KGC)
#==============================================================================
 
class Window_Command < Window_Selectable
unless method_defined?(:add_command)
  #--------------------------------------------------------------------------
  # add command
  #--------------------------------------------------------------------------
  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end
  #--------------------------------------------------------------------------
  # refresh command
  #--------------------------------------------------------------------------
  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Ven 3 Juin 2016 - 22:57
Fin du script:
Code:
 #--------------------------------------------------------------------------
  # insert command
  #--------------------------------------------------------------------------
  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end
  #--------------------------------------------------------------------------
  # remove command
  #--------------------------------------------------------------------------
  def remove_command(command)
    @commands.delete(command)
    @item_max = @commands.size
    refresh
  end
end
end
 
#===============================================================================
# Scene Menu
#===============================================================================
 
class Scene_Menu < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias create command window
  #--------------------------------------------------------------------------
  alias create_command_window_dse create_command_window unless $@
  def create_command_window
    create_command_window_dse
    return if $imported["CustomMenuCommand"]
    if $game_switches[YE::MENU::MONSTER::BESTIARY_SWITCH]
      scc_text = YE::MENU::MONSTER::BESTIARY_TITLE
      @command_bestiary = @command_window.add_command(scc_text)
      if @command_window.oy > 0
        @command_window.oy -= Window_Base::WLH
      end
    end
    @command_window.index = @menu_index
  end
 
  #--------------------------------------------------------------------------
  # alias update command selection
  #--------------------------------------------------------------------------
  alias update_command_selection_dse update_command_selection unless $@
  def update_command_selection
    call_yerd_command = 0
    if Input.trigger?(Input::C)
      case @command_window.index
      when @command_bestiary
        Sound.play_decision
        $scene = Scene_Bestiary.new(@command_window.index)
      end
    end
    update_command_selection_dse
  end
 
end # Scene Menu
 
#===============================================================================
# Scene Title
#===============================================================================
 
class Scene_Title < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias create game objects
  #--------------------------------------------------------------------------
  alias create_game_objects_dse create_game_objects unless $@
  def create_game_objects
    create_game_objects_dse
    $game_switches[YE::MENU::MONSTER::BESTIARY_SWITCH] = true
  end
 
end # Scene_Title
 
#===============================================================================
# Scene Battle
#===============================================================================
 
class Scene_Battle
 
  #--------------------------------------------------------------------------
  # alias create_info_viewport
  #--------------------------------------------------------------------------
  alias create_info_viewport_dse create_info_viewport unless $@
  def create_info_viewport
    create_info_viewport_dse
    #---
    @enemy_name_window = Window_Enemy_Name.new(0, 0, 272, 56)
    @enemy_name_window.visible = false
    @enemy_name_window.active = false
    #---
    @enemy_image_window = Window_Enemy_Image.new(0, 56, 272, 232)
    @enemy_image_window.visible = false
    @enemy_image_window.active = false
    #---
    @enemy_scan_window = Window_Enemy_Scan.new(272, 0, 272, 288, true)
    @enemy_scan_window.visible = false
    @enemy_scan_window.active = false
    #---
    hix = YE::MENU::MONSTER::HELP_WINDOW_X
    hiy = YE::MENU::MONSTER::HELP_WINDOW_Y
    hiw = YE::MENU::MONSTER::HELP_WINDOW_W
    text = YE::MENU::MONSTER::HELP_WINDOW_TX
    @scan_info_window = Window_Base.new(hix, hiy, hiw, 56)
    @scan_info_window.back_opacity = YE::MENU::MONSTER::HELP_WINDOW_O
    @scan_info_window.contents.draw_text(2, 0, hiw - 32, 24, text, 1)
    @scan_info_window.visible = false
    @scan_info_window.z = 200
  end
 
  #--------------------------------------------------------------------------
  # alias terminate
  #--------------------------------------------------------------------------
  alias terminate_dse terminate unless $@
  def terminate
    @enemy_scan_window.dispose if @enemy_scan_window != nil
    @enemy_image_window.dispose if @enemy_image_window != nil
    @enemy_name_window.dispose if @enemy_name_window != nil
    @scan_info_window.dispose if @scan_info_window != nil
    terminate_dse
  end
 
  #--------------------------------------------------------------------------
  # alias update_target_enemy_selection
  #--------------------------------------------------------------------------
  alias update_target_enemy_selection_dse update_target_enemy_selection unless $@
  def update_target_enemy_selection
    if YE::MENU::MONSTER::HELP_WINDOW_ON
      if @enemy_scan_window.active
        @scan_info_window.visible = false
      elsif @target_enemy_window.active
        @scan_info_window.visible = true
      else
        @scan_info_window.visible = false
      end
    else
      @scan_info_window.visible = false
    end
    #------------------------------------------
    # If the Enemy Scan Window is active
    #------------------------------------------
    if @enemy_scan_window != nil and @enemy_scan_window.active
      @enemy_scan_window.update
      @enemy_image_window.update
      @enemy_name_window.update
      if Input.trigger?(Input::B) #end1
        Sound.play_cancel
        @enemy_scan_window.disappear
        @enemy_image_window.disappear
        @enemy_name_window.visible = false
        @target_enemy_window.active = true
      elsif Input.trigger?(Input::LEFT) or Input.trigger?(Input::UP)
        @enemy_scan_window.previous_page
      elsif Input.trigger?(Input::RIGHT) or Input.trigger?(Input::DOWN)
        @enemy_scan_window.next_page
      elsif Input.trigger?(Input::L)
        @enemy_scan_window.top_page
      elsif Input.trigger?(Input::R)
        @enemy_scan_window.bottom_page
      end
    #------------------------------------------
    # If the Target Window is Active
    #------------------------------------------
    else
      if Input.trigger?(Input::B)
        @scan_info_window.visible = false
      elsif Input.trigger?(Input::C)
        @scan_info_window.visible = false
      elsif Input.trigger?(YE::MENU::MONSTER::ENEMY_SCAN_BUTTON)
        Sound.play_decision
        enemy = @target_enemy_window.enemy
        @enemy_scan_window.appear(enemy, @target_enemy_window)
        @enemy_image_window.appear(enemy, @target_enemy_window)
        @enemy_name_window.appear(enemy, @target_enemy_window)
        @target_enemy_window.active = false
      end
      update_target_enemy_selection_dse
      #---------
    end
  end
 
  #--------------------------------------------------------------------------
  # update enemy name window
  #--------------------------------------------------------------------------
  def update_enemy_name_window(enemy, window)
    @enemy_name_window.visible = true
    @enemy_name_window.contents.clear
    name = window.enemy.name
    @enemy_name_window.contents.draw_text(0, 0, 240, 32, name, 1)
    @enemy_name_window.update
  end
 
end # Scene_Battle
 
#===============================================================================
# Scene Bestiary
#===============================================================================
 
class Scene_Bestiary < Scene_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(menu_index = nil)
    @menu_index = menu_index
  end
 
  #--------------------------------------------------------------------------
  # start
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @boss_type = 0
    @enemy_list_window = Window_Enemy_List.new(@boss_type)
    @enemy_data_window = Window_Type_Data.new(@boss_type)
    @enemy_type_window = Window_Base.new(0, 0, 272, 56)
    refresh_type_window
    @enemy_help_category = Window_Base.new(272, 0, 272, 56)
    text = YE::MENU::MONSTER::CATEGORIZE_TEXT
    @enemy_help_category.contents.draw_text(0, 0, 240, 24, text, 1)
    @boss_help_window = Window_Base.new(136, 56, 272, 304)
    text = YE::MENU::MONSTER::CATEGORIZE_HELP
    @boss_help_window.back_opacity = 255
    @boss_help_window.contents.draw_text(0, 0, 240, 24, text, 1)
    @boss_help_window.visible = false
    @boss_type_window = Window_Boss_Types.new
    #---
    @enemy_name_window = Window_Enemy_Name.new(0, 0, 272, 56)
    @enemy_name_window.visible = false
    @enemy_name_window.active = false
    #---
    @enemy_image_window = Window_Enemy_Image.new(0, 56, 272, 360)
    @enemy_image_window.visible = false
    @enemy_image_window.active = false
    #---
    @enemy_scan_window = Window_Enemy_Scan.new(272, 0, 272, 416, true)
    @enemy_scan_window.visible = false
    @enemy_scan_window.active = false
    #---
  end
 
  #--------------------------------------------------------------------------
  # terminate
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @boss_type_window.dispose if @boss_type_window != nil
    @boss_help_window.dispose if @boss_help_window != nil
    @enemy_name_window.dispose if @enemy_name_window != nil
    @enemy_data_window.dispose if @enemy_data_window != nil
    @enemy_image_window.dispose if @enemy_image_window != nil
    @enemy_scan_window.dispose if @enemy_scan_window != nil
    @enemy_list_window.dispose if @enemy_list_window != nil
    @enemy_type_window.dispose if @enemy_type_window != nil
    @enemy_help_category.dispose if @enemy_help_category != nil
  end
 
  #--------------------------------------------------------------------------
  # return scene
  #--------------------------------------------------------------------------
  def return_scene
    if @menu_index == nil
      $scene = Scene_Menu.new($game_temp.menu_command_index[:bestiary])
    else
      $scene = Scene_Menu.new(@menu_index) ######
    end
  end
 
  #--------------------------------------------------------------------------
  # update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    if @boss_type_window.active
      update_type_window
    elsif @enemy_scan_window.active
      update_scan_window
    elsif @enemy_list_window.active
      update_enemy_list
    end
  end
 
  #--------------------------------------------------------------------------
  # update_type_window
  #--------------------------------------------------------------------------
  def update_type_window
    @boss_type_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @boss_type_window.visible = false
      @boss_help_window.visible = false
      @boss_type_window.active = false
      @enemy_list_window.active = true
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      last_boss_type = @boss_type
      @boss_type = @boss_type_window.type
      @enemy_list_window.refresh(@boss_type)
      @enemy_list_window.index = 0 unless last_boss_type == @boss_type
      @enemy_data_window.refresh(@boss_type)
      refresh_type_window
      @boss_type_window.visible = false
      @boss_help_window.visible = false
      @boss_type_window.active = false
      @enemy_list_window.active = true
    end
  end
 
  #--------------------------------------------------------------------------
  # update_scan_window
  #--------------------------------------------------------------------------
  def update_scan_window
    @enemy_scan_window.update
    @enemy_image_window.update
    @enemy_name_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @enemy_scan_window.disappear
      @enemy_image_window.disappear
      @enemy_name_window.visible = false
      @enemy_list_window.active = true
      @enemy = nil
    elsif Input.trigger?(Input::LEFT) or Input.trigger?(Input::UP)
      @enemy_scan_window.previous_page
    elsif Input.trigger?(Input::RIGHT) or Input.trigger?(Input::DOWN)
      @enemy_scan_window.next_page
    elsif Input.trigger?(Input::L)
      @enemy_scan_window.top_page
    elsif Input.trigger?(Input::R)
      @enemy_scan_window.bottom_page
    end
  end
 
  #--------------------------------------------------------------------------
  # update_enemy_list
  #--------------------------------------------------------------------------
  def update_enemy_list
    @enemy_list_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      if @enemy_list_window.enemy == nil
        Sound.play_buzzer
      elsif !viewable?(@enemy_list_window.enemy)
        Sound.play_buzzer
      else
        Sound.play_decision
        @enemy = Game_Enemy.new(0, @enemy_list_window.enemy.id)
        @enemy_scan_window.appear(@enemy)
        @enemy_image_window.appear(@enemy)
        @enemy_name_window.appear(@enemy)
        @enemy_list_window.active = false
      end
    elsif Input.trigger?(YE::MENU::MONSTER::CATEGORIZE_BUTTON)
      Sound.play_decision
      @boss_type_window.visible = true
      @boss_help_window.visible = true
      @boss_type_window.active = true
      @enemy_list_window.active = false
    end
  end
 
  #--------------------------------------------------------------------------
  # viewable?
  #--------------------------------------------------------------------------
  def viewable?(enemy)
    $game_party.monsters_encounter[enemy.id] = 0 if
      $game_party.monsters_encounter[enemy.id] == nil
    return false if $game_party.monsters_encounter[enemy.id] <= 0
    return true
  end
 
  #--------------------------------------------------------------------------
  # refresh type window
  #--------------------------------------------------------------------------
  def refresh_type_window
    @enemy_type_window.contents.clear
    array = YE::MENU::MONSTER::BOSS_TYPES[@boss_type]
    icon = array[0]
    text = sprintf(YE::MENU::MONSTER::BESTIARY_LIST, array[7])
    @enemy_type_window.draw_icon(icon, 0, 0)
    @enemy_type_window.contents.draw_text(24, 0, 216, 24, text, 0)
  end
 
end # Scene_Bestiary
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Bestiaire

le Ven 3 Juin 2016 - 23:23
Juste une question avant tu es bien sous VX ?

Tu utilises d'autres scripts que celui là ?
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Ven 3 Juin 2016 - 23:42
Je suis bien sous VX oui.
Et j'utilise un autre script. (Plus précisément celui de Modern Algebra pour un journal de quêtes)
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Bestiaire

le Sam 4 Juin 2016 - 0:15
je viens de regarder et testé mais je vois pas trop ce qui coince peut être que quelqu'un d'autre utilisant VX pourra t'être d'une plus grande aide désolé...
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Re: Bestiaire

le Sam 4 Juin 2016 - 14:00
Tout d'abord niveau des scripts, l'emplacement et l'ordre compte énormément, du haut vers le bas.

Donc essaye de déplacer ce script au dessus ou au dessous du script Modern Algebra pourquoi?
Je pense que c'est les deux scripts qui peut poser problème.

Essaie d'enlever un par un en testant lequel script fait boguer.
Ensuite tu essaye en modifiant l'ordre des scripts en mettant le script qui bug au dessous ou au dessus du script Bestiaire.

Puis si t'arrive toujours pas revient ici, et donne le nom du script qui fait boguer.

PS: Ne confond pas VX et VX Ace, car les script VX ou VX Ace n'ont pas la même structure de code.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Sam 4 Juin 2016 - 16:21
Merci Dany.
J'ai essayé ce que tu m'as dit, en changeant l'ordre et en enlevant le script de Modern Algebra mais impossible : le Bestiaire ne fonctionne pas.
Donc, j'en conclus que le script de Yanfly fait boguer ?
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Re: Bestiaire

le Sam 4 Juin 2016 - 20:40
Sûrement sinon faudrait passer une petite démo pour qu'on essaye, je vais l'installer vx, j'espère qui auront pas d'incompatible MV et Ace. ^^'
Mais je vais sûrement le réinstaller pour t'aider ^^
Mais essaye en mettant le script bestiaire avant ou après ceux de Yanfly.

PS: Met nous ta liste de script (juste ceux ajouté) en faisant un screen, afin de voir ici.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Sam 4 Juin 2016 - 21:10
En fait Script Bestiaire = Script Yanfly.
Tu as sûrement du confondre avec Modern Algebra.
Voici la liste de scripts :

avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Re: Bestiaire

le Sam 4 Juin 2016 - 21:46
Bien, essayer d'enlever Paragraph Formatter, il doit sûrement faire un impact sur le script Bestiaire.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Sam 4 Juin 2016 - 22:12
Nope. Ça ne change rien.
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Re: Bestiaire

le Sam 4 Juin 2016 - 22:28
Bizarre peux-tu me passer le lien?
PS: Connecte-toi sur la chatbox, ça sera facile pour discuter.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Dim 5 Juin 2016 - 0:13
Du coup, je suis désolé de pas avoir vu le message plus tôt.
Voici le lien sinon :

Script Bestiaire:
http://www.rpg-maker.fr/scripts-360-yanfly-engine-rd-bestiary-scan.html
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Re: Bestiaire

le Dim 5 Juin 2016 - 17:49
Alors, en regardant, je ne trouve rien d'anormal, est-tu sûr qui n'a pas d'autres scripts? Ou un des scripts de base qui à était modifier?
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Dim 5 Juin 2016 - 20:43
Sûr.
Et il ne me semble pas que l'un des scripts aient été modifié.
avatar
Mist'
Staffeux retraité

Nombre de messages : 3313
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Bestiaire

le Dim 5 Juin 2016 - 21:30
Hmm...

En fait, j'ai regardé un peu, et je vois aucun code de Window_, dans ce script, tu l'as copié où ce script?
D'ailleurs, j'ai bien essayé d'aller sur Yanfly Channel, mais impossible d'accéder au script. Sans le code des Window_, c'est normal que ça t'affiche une erreur, ton script fait appel à une classe inexistante.

Pour faire autrement, à l'époque, il me semble que Krazplay avait porté son script de bestiaire qu'il avait écrit sous XP vers VX, essaie de chercher de ce côté là, et vois si ça te convient. (Y'a même moyen que le script soit sur le forum, j'pense)

_________________
avatar
crackerwood
Membre

Nombre de messages : 344
Age : 33
Localisation : Derrière son pc y parait
Distinction : aucune
Date d'inscription : 03/08/2008

Re: Bestiaire

le Dim 5 Juin 2016 - 21:55
Salut. Tu peux toujours essayer avec ça : http://www.hbgames.org/forums/viewtopic.php?t=47559
ou là : http://www.rpg-maker.fr/scripts-255-bestiaire-20.html
ou là : http://www.rpgmakervx-fr.com/t6730-monster-album-bestiary-version-1-0
ou là : http://www.rpgmakervx-fr.com/t10983-bestiaire-2-0
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Dim 5 Juin 2016 - 22:27
Mistoudoupoutchou a écrit:Hmm...
En fait, j'ai regardé un peu, et je vois aucun code de Window_, dans ce script, tu l'as copié où ce script?

Un code de Window_ ?
Késako ?

Merci pour les liens, j'essayerais ça dès que possible.
avatar
Enzoul
Membre

Nombre de messages : 23
Distinction : aucune
Date d'inscription : 02/04/2016

Re: Bestiaire

le Ven 10 Juin 2016 - 18:40
Le script de Krazplay semble pouvoir fonctionner. Cependant, trois problèmes d'importance plus ou moins grande :

1-Je ne sais pas comment ouvrir le bestiaire.
2-Lorsqu'un ennemi est tué, j'ai une "NoMethodError" à la
ligne 123:
$game_system.bestiaire[id_monstre] += nombre
Et ça m'affiche "undefined method '[]=" for 0:Fixnum"
3-Moins important je suppose, je ne sais comment faire fonctionner le script permettant de l'ouvrir hors combat avec le script de Modern Algebra.
avatar
Mist'
Staffeux retraité

Nombre de messages : 3313
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Bestiaire

le Lun 20 Juin 2016 - 13:57
En gros, les Window_ sont du code qui concerne l'affichage des fenêtres. Sans ça, c'est donc normal que ça ne s'affiche pas.
Bref, du coup, étant donné que tu es passé au bestiaire de Krazplay, j'essaierai d'y jeter un oeil d'ici peu, quand j'aurai RM sous la main & le script en lui-même. Wink

_________________
Contenu sponsorisé

Re: Bestiaire

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum