Problême SBS Takentaï et script Yanfly bestiaire + scan
Auteur
Message
Gunslinger
Poulet trizo Lv.3
Age : 29 Inscrit le : 31/10/2011 Messages : 31
Sujet: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 16 Juil 2012 - 17:03
Bonjours, bonsoir tout le monde.
J'aurais besoin de votre aide pour un problême relatif au SBS takentaï 3.4 et le script Bestiaire + Ecran de scan Redux de Yanfly.
Mon problême est le suivant, lorsque j'appuie sur Maj pour faire apparaitre l'écran en plein combat, il ne se passe rien, l'écran n'apparait pas et rendant par la même occassion le scan de l'ennemi non consultable.
Je pense que cela vient du SBS car quand je teste le scan sur un projet sans SBS, l'écran apparait bien.
Quelqu'un aurait-il la solution à mon problême, s'il vous plait ??
Merci d'avance pour votre aide !! Amicalement Gunslinger
Garruk
Aventurier Lv.16
Age : 40 Inscrit le : 03/09/2009 Messages : 1503
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 16 Juil 2012 - 19:12
Le script marche très bien pour la version 3.3, après si tu utilises la jauge ATB c'est différent, car même sur la version 3.3 le script fail.
Malum
Révolutionnaire mais ça rentrait pas alors autre chose
Age : 30 Inscrit le : 28/05/2010 Messages : 1537
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 16 Juil 2012 - 19:24
Si tu un petit peu de skill en script, farfouille dedans pour trouver l'allusion à la touche MaJ et remplace là par une autre touche =) Si ce n'est pas le cas, balance moi le script que j'ai pas sous la main et j'essais de te faire ça =)
Gunslinger
Poulet trizo Lv.3
Age : 29 Inscrit le : 31/10/2011 Messages : 31
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 16 Juil 2012 - 21:06
Je me débrouille moyennement en script. Mais voilà le script de Yanfly sur le bestiaire pour que tu te fasse une petite idée :
Code:
#=============================================================================== # # Yanfly Engine RD - Bestiary + Display Scanned Enemy # 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 #=============================================================================== # # To access the bestiary, make sure the switch governing the bestiary option # is on. Otherwise, it will not show. The bestiary will be accessible by default # at the start of a new game. # # ---------------------------------------------------------------------------- # 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> # Causes the skill to unlock all scan data about the target enemy. # # <scan hp mp> # Causes the skill to unlock only the HP and MP portion of the enemy data. # Note that even if HP and MP were unscanned, the gauge bars will still move up # and down as to give the player a general idea of how much health the enemy has # before giving the player more accurate information. # # <scan stats> # Causes the skill to unlock the ADSA and HECO stats for the target enemy scan # data. On the HECO stats side, you can hide certain stats from appear. Odds is # hidden by default with this script. # # <scan skills> # Causes the skill to unlock the skill page for the target enemy scan data. This # will list all of the skills the enemy will use in battle. Duplicate skills are # condensed and removed from the listing. # # <scan elements> # Causes the skill to unlock the elements page for the target enemy data. This # provides a chart of the enemy's elemental affinities as to what will damage # the enemy more or less. # # <scan status effects> or <scan states> # Causes the skill to unlock the status effects page for the target enemy data. # Like the elements page, this provides a listing of status effect chances to # occur for the enemy. # # <scan steal> # Only appears if you have KGC Steal. This page will reveal information about # items that can be stolen form the enemy along with their steal rates. # # <scan spoils> # Causes a skill to unlock the experience, gold, encounters page for target # enemy data. This is pretty much stuff that comes out of an enemy after a # battle is over. Can include drops (optional). # # <scan drops> # Causes a skill to unlock the drops page. Use this if you use KGC's Extra Drops # and if your enemies have huge drop lists. This will display way more. # # <scan description> # Causes a skill to unlock the extra description page where you can make your # own custom notes. Note that if you don't alter the Lunatic mode hash down # below, even if you scan the enemy, the extra page won't show unless there is # something to be shown. # #=============================================================================== # How to Use: Hard Mode #=============================================================================== # # <boss type x> or <boss type x,x> # This will determine the boss types available for that enemy. Boss types will # categorize enemies differently in the bestiary and also display certain parts # of the scan data differently. # # For those that would like to prevent certain pages from showing up on specific # enemies, you can use the following tags on those enemies to prevent those very # pages from appearing without completely disabling a part of the scan set. # # <hide whole> # Prevents everything from being shown at all for that enemy. # # <hide hp_mp> # Prevents HP and MP from being displayed for that enemy. # # <hide stats> # Prevents the ADSA and HECO stats from being displayed for that enemy. # # <hide skills> # Prevents skills from being displayed for that enemy. # # <hide elements> # Prevents element chart from being displayed for that enemy. # # <hide status effects> or <hide states> # Prevents status effect probability chart from being displayed for that enemy. # # <hide steal> # Prevents stolen items from being shown for that enemy. # # <hide spoils> # Prevents victory spoil information from being shown for that enemy. # # <hide drops> # Prevents drop information from being displayed for that enemy. # # 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 = "Bestiary" # The title which appears on the menu. BESTIARY_SWITCH = 71 # Which switch will enable this command? BESTIARY_LIST = "%s List" # Text which follows boss type. BESTIARY_MASK = "?" # Mask used for unknown enemies.
# The following is an array used to hide monsters from the bestiary. # Input the ID's of the monsters into the array if you wish to hide them. # By default, Swap Dummy Monsters are automatically hidden. HIDDEN_MONSTERS = [31, 32, 33, 34, 35]
# The following determines the order the monsters are displayed in. Note # that if you alphabetize the monster list, this will have no effect. BESTIARY_ORDER = [16, 1..15, 17..30]
# The following lets you govern the rules for displaying different # boss type categories. CATEGORIZE_TEXT = "Shift: Change Categories" CATEGORIZE_HELP = "Select a Category Type" CATEGORIZE_VIEW = "View %s" CATEGORIZE_BUTTON = Input::SHIFT
# The following adjusts the category data shown for the overall monster # book information. MENU_FONT_SIZE = 16 BESTIARY_INFO = "Bestiary Information" TEXT_COMPLETION = "Bestiary Completion" RATE_COMPLETION = "%#.05g%%" ICON_COMPLETION = 141 TEXT_DISCOVERED = "Total Discovered" ICON_DISCOVERED = 196 TEXT_ENCOUNTERS = "Total Encounters" TEXT_DEFEATED = "Total Defeated" TEXT_ESCAPED = "Total Escaped" TEXT_TYPE_DIS = "%s Discovered" TEXT_TYPE_ENC = "%s Encountered" TEXT_TYPE_DEF = "%s Defeated" TEXT_TYPE_ESC = "%s Escaped"
#------------------------------------------------------------------------ # SCAN WINDOW RELATED #------------------------------------------------------------------------
# This is the button pressed to trigger the enemy scan window in battle. ENEMY_SCAN_BUTTON = Input::A
# If this is set to true, you must use scan skills on an enemy type before # any data will be displayed at all. REQUIRE_SCAN = true
# This allows you to adjust the help info window's properties in battle. HELP_WINDOW_TX = "Press Shift to view enemy data." HELP_WINDOW_ON = true # This turns the window on and off. HELP_WINDOW_X = 0 # This is where the X position is. HELP_WINDOW_Y = 0 # This is where the Y position is. HELP_WINDOW_W = 544 # This is what width the window is. HELP_WINDOW_O = 255 # This is the window's opacity level.
# This affects how you want the scan to appear. ENEMY_NAME = "%s Data"
# 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 = "Unknown"
# 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 = "General Info" 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 = "Status Effects" # Category for affected states. HIDDEN_STAT = "???" # If the enemy is unscanned or hides stats. DATA_ATK = "ATK" # For attack. DATA_DEF = "DEF" # For defense. DATA_SPI = "SPI" # For spirit. DATA_AGI = "AGI" # For agility. DATA_HIT = "HIT" # For hit rate. HIDE_HIT = false # Set this to true if you wish to hide Hit. DATA_EVA = "EVA" # For evasion rate. HIDE_EVA = false # Set this to true if you wish to hide Eva. DATA_CRI = "CRI" # For critical rate. HIDE_CRI = false # Set this to true if you wish to hide Cri. DATA_ODDS = "LUK" # 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
# Here you can control boss types and whatnot. To use boss types, add # the boss type category here and insert in the enemy's notebox the # <boss type x> tag. It will reference to this hash as to how to display # the following information: Boss Type Icon, HP Icon, HP Colour 1, # HP Colour 2, MP Icon, MP Colour 1, and MP Colour 2. BOSS_TYPES ={ # Type => [Icon,HPIc,HPC1,HPC2,MPIc,MPC1,MPC2, Type Name, Pural] 0 => [ 118, 99, 20, 21, 100, 22, 23, "Monster", "Monsters"], 1 => [ 112, 208, 18, 20, 209, 11, 22, "Boss", "Bosses"], 2 => [ 157, 99, 20, 21, 100, 22, 23, "Midboss", "Midbosses"], } # Do not remove this.
# This is for the bestiary and how you would like the order to appear. TYPE_ORDERING = [0, 2, 1]
# This is all of the icon information for the first page. ICON_HIGH = 142 # If a stat is higher than base stat. ICON_LOW = 143 # If a stat is lower than base stat. ICON_ATK = 2 # Icon for ATK ICON_DEF = 52 # Icon for DEF ICON_SPI = 21 # Icon for SPI ICON_AGI = 48 # Icon for AGI ICON_HIT = 135 # Icon for HIT ICON_EVA = 158 # Icon for EVA ICON_CRI = 119 # Icon for CRI ICON_ODDS = 137 # 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 = "Skill Info" DATA_SKILLS = "Skill Name" VIEW_SKILLS1 = "%d Skill" VIEW_SKILLS2 = "%d Skills"
# This affects info displayed for the element affinity info page. # Elements will only show if they are listed in the hash below. SHOW_ELEMENTS = true TITLE_ELEMENTS = "Element Affinity" 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 = 99 # Icon used for element rate A. ICON_E_RATE_B = 99 # Icon used for element rate B. ICON_E_RATE_C = 102 # Icon used for element rate C. ICON_E_RATE_D = 101 # Icon used for element rate D. ICON_E_RATE_E = 100 # Icon used for element rate E. ICON_E_RATE_F = 103 # 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. "Physical Elements" => [ # These are the element ID's. [ 2, 3, 4, 5, 6], # These are the element icons. [ 10, 4, 14, 16, 12] ], # Next row
"Magical Elements" => [ # These are the element ID's. [ 9, 10, 11, 12, 13, 14, 15, 16], # These are the element icons. [ 104, 105, 106, 107, 108, 109, 110, 111] ], # Next row
} # Do not remove this.
# This affects info displayed for the status effect probability page. # Status effect will only show if they're listed in the hash below. SHOW_STATES = true TITLE_STATES = "Status Chances" 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 = 99 # Icon used for status rate A. ICON_S_RATE_B = 99 # Icon used for status rate B. ICON_S_RATE_C = 102 # Icon used for status rate C. ICON_S_RATE_D = 101 # Icon used for status rate D. ICON_S_RATE_E = 100 # Icon used for status rate E. ICON_S_RATE_F = 103 # 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. "Conditions" => [ 2, 3, 4, 5, 6, 7, 8], "Buffs" => [ 9, 10, 11, 12], "Debuffs" => [13, 14, 15, 16], } # Do not remove this.
# The following portion requires KGC's Steal script to show, but doesn't # affect the rest of this script. This page shows a list of stealable # goodies you can nab using KGC's Steal script. SHOW_STEAL = true TITLE_STEAL = "Steal Info" DATA_S_ITEM = "Item Name" DATA_S_CHANCE = "Rate"
# 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 = "Victory Spoils" DEATH_SPOILS = true # Set to true if you wish to reveal spoils info # when an enemy dies. DATA_GOLD = "Gold" # Message used to indicate gold drop. VIEW_GOLD = "%d Gold" # How the gold gain will appear. ICON_GOLD = 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 = 62 # Icon used for exp gain. DATA_ENCOUNTER = "Encounters" # Message used to indicate encounters. VIEW_ENC1 = "%d Time" # How the encounters will appear. Singular. VIEW_ENC2 = "%d Times" # How the encounters will appear. Plural. ICON_ENCOUNTER = 63 # Icon used for encounters. DATA_KILLED = "Defeated" # Message used to indicate defeats. VIEW_KILLED1 = "%d Kill" # How the defeats will appear. Singular. VIEW_KILLED2 = "%d Kills" # How the defeats will appear. Plural. ICON_KILLED = 157 # Icon used for defeats. DATA_ESCAPED = "Escaped" # Message used to indicate escapes. VIEW_ESCAPED1 = "%d Fled" # How the defeats will appear. Singular. VIEW_ESCAPED2 = "%d Fled" # How the defeats will appear. Plural. ICON_ESCAPED = 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 = "Drops Info" DEATH_DROPS = true # Set to true if you wish to reveal spoils info # when an enemy dies. DATA_D_ITEM = "Drop Name" 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 = 240 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 ={ 26 => "Vampires are mythological or|folkloric revenants who sub-|sist by feeding on the blood|of the living. In folkloric|tales, the undead vampires|often visited loved ones and|caused mischief or deaths in|the neighbourhoods they in-|habited when they were alive.", 1200 => "Hello, world.|It's nice to meet you.", 1201 => "Good bye, world.|It was nice meeting you.", } # Do not remove this.
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_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
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
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 #===============================================================================
#-------------------------------------------------------------------------- # 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) #==============================================================================
#=============================================================================== # 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 #===============================================================================
#-------------------------------------------------------------------------- # 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 #===============================================================================
#-------------------------------------------------------------------------- # 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_Map.new 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
#-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh(boss_type) @boss_type = boss_type @data = [] for enemy in monster_list @data.push(enemy) end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end
#-------------------------------------------------------------------------- # draw item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) enemy = @data[index] $game_party.monsters_encounter[enemy.id] = 0 if $game_party.monsters_encounter[enemy.id] == nil if $game_party.monsters_encounter[enemy.id] > 0 text = enemy.name.gsub(/\[.*\]/) { "" } self.contents.font.color.alpha = 255 else mask = YE::MENU::MONSTER::BESTIARY_MASK if mask.scan(/./).size == 1 mask = mask * enemy.name.scan(/./).size end text = mask self.contents.font.color.alpha = 128 end self.contents.draw_text(rect.x+4, rect.y, rect.width-4, WLH, text) end
#-------------------------------------------------------------------------- # include? #-------------------------------------------------------------------------- def include?(enemy) return false if enemy == nil return false unless enemy.boss_type.include?(@boss_type) return false if YE::HIDDEN_ENEMY.include?(enemy.id) return false if $imported["SwapDummyMonster"] and YE::SWAP::DUMMY_MONSTER.include?(enemy.id) return true end
#-------------------------------------------------------------------------- # monster_list #-------------------------------------------------------------------------- def monster_list result = [] for enemy_id in YE::ENEMY_LIST result.push($data_enemies[enemy_id]) if include?($data_enemies[enemy_id]) end return result end
#-------------------------------------------------------------------------- # return enemy #-------------------------------------------------------------------------- def enemy return @data[self.index] end
for key in $game_party.monsters_encounter next if key[1] == nil or key[1] <= 0 unique_encounters += 1 total_encountered += key[1] if $data_enemies[key[0]].boss_type.include?(@boss_type) unique_discovered += 1 unique_type_enc += key[1] end end for key in $game_party.monsters_defeated next if key[1] == nil or key[1] <= 0 total_defeated += key[1] if $data_enemies[key[0]].boss_type.include?(@boss_type) unique_defeated += key[1] end end for key in $game_party.monsters_escaped next if key[1] == nil or key[1] <= 0 total_escaped += key[1] if $data_enemies[key[0]].boss_type.include?(@boss_type) unique_escaped += key[1] end end total_size = YE::ENEMY_LIST.size - YE::HIDDEN_ENEMY.size
#-------------------------------------------------------------------------- # bestiary_completion #-------------------------------------------------------------------------- def bestiary_completion total = 0; result = 0 for enemy in $data_enemies next if $imported["SwapDummyMonster"] and YE::SWAP::DUMMY_MONSTER.include?(enemy.id) next if YE::HIDDEN_ENEMY.include?(enemy.id) next if enemy == nil total += 1 if $game_party.monsters_encounter.include?(enemy.id) and $game_party.monsters_encounter[enemy.id] > 0 result += 1 end next unless YE::MENU::MONSTER::REQUIRE_SCAN next if enemy.hide_whole total += 1 if YE::MENU::MONSTER::SHOW_GENERAL and !enemy.hide_hp_mp total += 1 if YE::MENU::MONSTER::SHOW_GENERAL and !enemy.hide_stats total += 1 if YE::MENU::MONSTER::SHOW_SKILLS and !enemy.hide_skill total += 1 if YE::MENU::MONSTER::SHOW_ELEMENTS and !enemy.hide_elem total += 1 if YE::MENU::MONSTER::SHOW_STATES and !enemy.hide_state total += 1 if YE::MENU::MONSTER::SHOW_SPOILS and !enemy.hide_spoil if YE::MENU::MONSTER::SPOIL_DROPS or (YE::MENU::MONSTER::SHOW_DROPS and $imported["ExtraDropItem"]) and !enemy.hide_drops total += 1 end if $imported["Steal"] and YE::MENU::MONSTER::SHOW_STEAL and !enemy.hide_steal total += 1 end if YE::MENU::MONSTER::SHOW_NOTES and YE::HASH::ENEMY_NOTES.include?(enemy.id) total += 1 end end if YE::MENU::MONSTER::REQUIRE_SCAN result += $game_party.scan_hp_mp.size result += $game_party.scan_stats.size result += $game_party.scan_skill.size result += $game_party.scan_state.size result += $game_party.scan_spoil.size result += $game_party.scan_drops.size result += $game_party.scan_steal.size result += $game_party.scan_desc.size end result *= 100.0 result /= total return result end
#-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh @data = YE::MENU::MONSTER::TYPE_ORDERING @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end
#-------------------------------------------------------------------------- # type #-------------------------------------------------------------------------- def type return @data[self.index] end
#-------------------------------------------------------------------------- # draw_item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) type = @data[index] icon = YE::MENU::MONSTER::BOSS_TYPES[type][0] name = YE::MENU::MONSTER::BOSS_TYPES[type][8] text = sprintf(YE::MENU::MONSTER::CATEGORIZE_VIEW, name) draw_icon(icon, rect.x+4, rect.y) self.contents.draw_text(rect.x+28, rect.y, rect.width-28, WLH, text) end
end # Window_Boss_Types
#=============================================================================== # Window Enemy Name #===============================================================================
class Window_Enemy_Name < Window_Base
#-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(x, y, width, height) super(x, y, width, height) self.back_opacity = 255 @target_enemy_window = nil self.z = 200 self.visible = false end
def disappear self.active = false self.visible = false end
#-------------------------------------------------------------------------- # page switching #-------------------------------------------------------------------------- def next_page if @page != @total_pages @page += 1 else @page = 1 end turn_sound draw_enemy_data end
def previous_page if @page != 1 @page -= 1 else @page = @total_pages end turn_sound draw_enemy_data end
def top_page @page = 1 turn_sound draw_enemy_data end
def bottom_page @page = @total_pages turn_sound draw_enemy_data end
#-------------------------------------------------------------------------- # turn sound #-------------------------------------------------------------------------- def turn_sound unless YE::MENU::MONSTER::PAGE_SOUND == nil sound = YE::MENU::MONSTER::PAGE_SOUND sound.play end end
#-------------------------------------------------------------------------- # draw enemy data #-------------------------------------------------------------------------- def draw_enemy_data self.contents.clear self.contents.font.color.alpha = 255 self.contents.font.size = Font.default_size self.contents.font.color = normal_color @category_colour = YE::MENU::MONSTER::DATA_CATEGORY_COLOUR #-------------------- pagecase = @contents[@page - 1] if @page == 1 and !YE::MENU::MONSTER::REPLACE_PAGE_MSG text1 = "" else text1 = YE::MENU::MONSTER::DATA_LEFT end if YE::MENU::MONSTER::REPLACE_PAGE_MSG #--------------------------------------
text2 = case_page_name(pagecase)
else #---------------------------------------------------------------------- text2 = sprintf(YE::MENU::MONSTER::DATA_PAGES, @page, @total_pages) end if @page == @total_pages and !YE::MENU::MONSTER::REPLACE_PAGE_MSG text3 = "" else text3 = YE::MENU::MONSTER::DATA_RIGHT end #-------------------- self.contents.draw_text(2, 0, 232, WLH, text1, 0) self.contents.draw_text(2, 0, 232, WLH, text2, 1) self.contents.draw_text(2, 0, 232, WLH, text3, 2) #-------------------- if @enemy != nil case_page_run(pagecase) end end
#-------------------------------------------------------------------------- # make general page #-------------------------------------------------------------------------- def make_general_page y = WLH x = 0 sw = self.width - 32 gc0 = gauge_back_color gce = text_color(YE::MENU::MONSTER::EXHAUST_COLOUR) gh = YE::MENU::MONSTER::GAUGE_HEIGHT dx = (sw - (24 * @enemy.enemy.boss_type.size)) / 2 for boss_type in @enemy.enemy.boss_type array = YE::MENU::MONSTER::BOSS_TYPES[boss_type] icon = array[0] draw_icon(icon, dx, y, true) dx += 24 end dsearray = YE::MENU::MONSTER::BOSS_TYPES[@enemy.enemy.boss_type[0]] #--------Draw HP-------- y += WLH if @enemy.maxhp > @enemy.base_maxhp icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.maxhp < @enemy.base_maxhp icon = YE::MENU::MONSTER::ICON_LOW else icon = dsearray[1] end @enemy.hp = @enemy.maxhp if @enemy.hp > @enemy.maxhp gc1 = text_color(dsearray[2]) gc2 = text_color(dsearray[3]) gy = y + WLH - 8 - (gh - 6) if @enemy.maxhp < @enemy.base_maxhp and @enemy.base_maxhp > 0 gb = sw * @enemy.maxhp / @enemy.base_maxhp self.contents.fill_rect(x, gy, sw, gh, gce) else gb = sw end self.contents.fill_rect(x, gy, gb, gh, gc0) if @enemy.maxhp <= 0 if @enemy.base_maxhp <= 0 gw = sw else gw = 0 end else gw = gb * @enemy.hp / @enemy.maxhp self.contents.gradient_fill_rect(x, gy, gw, gh, gc1, gc2) end draw_icon(icon, x, y, true) text = Vocab::hp self.contents.font.color = text_color(@category_colour) self.contents.draw_text(24, y, sw-24, WLH, text, 0) self.contents.font.color = normal_color hidehp = false if @require hidehp = true unless $game_party.scan_hp_mp.include?(@enemy.enemy_id) end if hidehp or @enemy.enemy.hide_hp_mp text = YE::MENU::MONSTER::HIDDEN_HP elsif YE::MENU::MONSTER::HP_DISPLAY_TYPE == 1 text = @enemy.hp elsif YE::MENU::MONSTER::HP_DISPLAY_TYPE == 2 text = sprintf("%d/%d",@enemy.hp,@enemy.maxhp) else text = sprintf("%#.05g%%",@enemy.hp * 100.000 / @enemy.maxhp) end self.contents.draw_text(0, y, sw, WLH, text, 2) #--------Draw MP-------- y += WLH if @enemy.maxmp > @enemy.base_maxmp icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.maxmp < @enemy.base_maxmp icon = YE::MENU::MONSTER::ICON_LOW else icon = dsearray[4] end @enemy.mp = @enemy.maxmp if @enemy.mp > @enemy.maxmp gc1 = text_color(dsearray[5]) gc2 = text_color(dsearray[6]) gy = y + WLH - 8 - (gh - 6) if @enemy.maxmp < @enemy.base_maxmp and @enemy.base_maxmp > 0 gb = sw * @enemy.maxmp / @enemy.base_maxmp self.contents.fill_rect(x, gy, sw, gh, gce) else gb = sw end self.contents.fill_rect(x, gy, gb, gh, gc0) if @enemy.maxmp <= 0 if @enemy.base_maxmp <= 0 gw = sw else gw = 0 end else gw = gb * @enemy.mp / @enemy.maxmp end self.contents.gradient_fill_rect(x, gy, gw, gh, gc1, gc2) draw_icon(icon, x, y, true) text = Vocab::mp self.contents.font.color = text_color(@category_colour) self.contents.draw_text(24, y, sw-24, WLH, text, 0) self.contents.font.color = normal_color hidemp = false if @require hidemp = true unless $game_party.scan_hp_mp.include?(@enemy.enemy_id) end if hidemp or @enemy.enemy.hide_hp_mp text = YE::MENU::MONSTER::HIDDEN_MP elsif YE::MENU::MONSTER::MP_DISPLAY_TYPE == 1 text = @enemy.mp elsif YE::MENU::MONSTER::MP_DISPLAY_TYPE == 2 text = sprintf("%d/%d",@enemy.mp,@enemy.maxmp) else if @enemy.maxmp text = sprintf("%#.05g%%", 100.000) else text = sprintf("%#.05g%%",@enemy.mp * 100.000 / @enemy.maxmp) end end self.contents.draw_text(0, y, sw, WLH, text, 2) #--------Draw ADSA and HECO Stats-------- self.contents.font.size = YE::MENU::MONSTER::FONT_SIZE hide = YE::MENU::MONSTER::HIDDEN_STAT hidestats = false if @require hidestats = true unless $game_party.scan_stats.include?(@enemy.enemy_id) end if hidestats or @enemy.enemy.hide_stats textatk = hide; textdef = hide; textspi = hide; textagi = hide texthit = hide; texteva = hide; textcri = hide; textodds = hide else textatk = @enemy.atk; textdef = @enemy.def textspi = @enemy.spi; textagi = @enemy.agi texthit = sprintf("%d%%",@enemy.hit) texteva = sprintf("%d%%",@enemy.eva) textcri = sprintf("%d%%",@enemy.cri) textodds = sprintf("%d", @enemy.odds) end #---ATK--- y += WLH + WLH / 4 if @enemy.atk > @enemy.base_atk icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.atk < @enemy.base_atk icon = YE::MENU::MONSTER::ICON_LOW else icon = YE::MENU::MONSTER::ICON_ATK end draw_icon(icon, 0, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_ATK self.contents.draw_text(24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw/4, y, sw/4-12, WLH, textatk, 2) #---HIT--- unless YE::MENU::MONSTER::HIDE_HIT icon = YE::MENU::MONSTER::ICON_HIT draw_icon(icon, sw/2, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_HIT self.contents.draw_text(sw/2+24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw*3/4, y, sw/4-12, WLH, texthit, 2) end #---DEF--- y += WLH if @enemy.def > @enemy.base_def icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.def < @enemy.base_def icon = YE::MENU::MONSTER::ICON_LOW else icon = YE::MENU::MONSTER::ICON_DEF end draw_icon(icon, 0, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_DEF self.contents.draw_text(24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw/4, y, sw/4-12, WLH, textdef, 2) #---EVA--- unless YE::MENU::MONSTER::HIDE_EVA icon = YE::MENU::MONSTER::ICON_EVA draw_icon(icon, sw/2, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_EVA self.contents.draw_text(sw/2+24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw*3/4, y, sw/4-12, WLH, texteva, 2) end #---SPI--- y += WLH if @enemy.spi > @enemy.base_spi icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.spi < @enemy.base_spi icon = YE::MENU::MONSTER::ICON_LOW else icon = YE::MENU::MONSTER::ICON_SPI end draw_icon(icon, 0, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_SPI self.contents.draw_text(24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw/4, y, sw/4-12, WLH, textspi, 2) #---CRI--- unless YE::MENU::MONSTER::HIDE_CRI icon = YE::MENU::MONSTER::ICON_CRI draw_icon(icon, sw/2, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_CRI self.contents.draw_text(sw/2+24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw*3/4, y, sw/4-12, WLH, textcri, 2) end #---AGI--- y += WLH if @enemy.agi > @enemy.base_agi icon = YE::MENU::MONSTER::ICON_HIGH elsif @enemy.agi < @enemy.base_agi icon = YE::MENU::MONSTER::ICON_LOW else icon = YE::MENU::MONSTER::ICON_AGI end draw_icon(icon, 0, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_AGI self.contents.draw_text(24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw/4, y, sw/4-12, WLH, textagi, 2) #---ODDS--- unless YE::MENU::MONSTER::HIDE_ODDS icon = YE::MENU::MONSTER::ICON_ODDS draw_icon(icon, sw/2, y, true) self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_ODDS self.contents.draw_text(sw/2+24, y, sw/4-24, WLH, text, 0) self.contents.font.color = normal_color self.contents.draw_text(sw*3/4, y, sw/4-12, WLH, textodds, 2) end #--------STATUS EFFECTS-------- y += WLH + WLH / 4 state_draw = @enemy.states for state in state_draw state_draw.delete(state) if state.icon_index == 0 end unless state_draw == [] self.contents.font.size = Font.default_size self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_STATES self.contents.draw_text(0, y, sw, WLH, text, 1) y += WLH draw_actor_state(@enemy, 0, y, sw + 12) end end # make general page
#-------------------------------------------------------------------------- # make skills page #-------------------------------------------------------------------------- def make_skills_page x = 0 y = WLH sw = self.width - 32 action_list = [] skilltotal = 0 for action in @enemy.enemy.actions if action.kind == 1 obj = $data_skills[action.skill_id] unless action_list.include?(obj) action_list.push(obj) skilltotal += 1 end end end y += WLH self.contents.font.color = normal_color for obj in action_list break if (y + 24) > (self.height - 32) draw_item_name(obj, x, y, true) y += WLH end y = WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_SKILLS self.contents.draw_text(0, y, sw, WLH, text, 0) if skilltotal == 1 text = sprintf(YE::MENU::MONSTER::VIEW_SKILLS1, skilltotal) else text = sprintf(YE::MENU::MONSTER::VIEW_SKILLS2, skilltotal) end self.contents.draw_text(0, y, sw, WLH, text, 2) end # end make skills page
#-------------------------------------------------------------------------- # make elements page #-------------------------------------------------------------------------- def make_elements_page x = 0 y = WLH sw = self.width - 32 for key in YE::MENU::MONSTER::ELEMENT_HASH doublearr = key[1] ele_array = doublearr[0] ele_icon = doublearr[1] self.contents.font.color = text_color(@category_colour) text = key[0] self.contents.draw_text(0, y, sw, WLH, text, 1) y += WLH x = (sw - ele_array.size * 24) / 2 for icon in ele_icon draw_icon(icon, x, y, true) x += 24 end y += WLH x = (sw - ele_array.size * 24) / 2 for element in ele_array rank = @enemy.enemy.element_ranks[element] result = [0,1,2,3,4,5,6][rank] if result == 0 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_Z, x, y, true) elsif result == 1 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_A, x, y, true) elsif result == 2 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_B, x, y, true) elsif result == 3 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_C, x, y, true) elsif result == 4 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_D, x, y, true) elsif result == 5 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_E, x, y, true) elsif result == 6 draw_icon(YE::MENU::MONSTER::ICON_E_RATE_F, x, y, true) else draw_icon(YE::MENU::MONSTER::ICON_E_RATE_U, x, y, true) end x += 24 end y += WLH * 2 end end # make elements page
#-------------------------------------------------------------------------- # make states page #-------------------------------------------------------------------------- def make_states_page x = 0 y = WLH sw = self.width - 32 for key in YE::MENU::MONSTER::STATES_HASH states_array = key[1] self.contents.font.color = text_color(@category_colour) text = key[0] self.contents.draw_text(0, y, sw, WLH, text, 1) y += WLH x = (sw - states_array.size * 24) / 2 for state_id in states_array icon = $data_states[state_id].icon_index draw_icon(icon, x, y, true) x += 24 end y += WLH x = (sw - states_array.size * 24) / 2 for state_id in states_array icon = $data_states[state_id].icon_index rank = @enemy.enemy.state_ranks[state_id] result = [0,1,2,3,4,5,6][rank] if result == 0 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_Z, x, y, true) elsif result == 1 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_A, x, y, true) elsif result == 2 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_B, x, y, true) elsif result == 3 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_C, x, y, true) elsif result == 4 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_D, x, y, true) elsif result == 5 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_E, x, y, true) elsif result == 6 draw_icon(YE::MENU::MONSTER::ICON_S_RATE_F, x, y, true) else draw_icon(YE::MENU::MONSTER::ICON_S_RATE_U, x, y, true) end x += 24 end y += WLH end end # make states page
#-------------------------------------------------------------------------- # make steal page #-------------------------------------------------------------------------- def make_steal_page return unless $imported["Steal"] x = 0 y = 0 sw = self.width - 32 y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_S_ITEM self.contents.draw_text(0, y, sw, WLH, text, 0) text = YE::MENU::MONSTER::DATA_S_CHANCE self.contents.draw_text(0, y, sw, WLH, text, 2) y += WLH steal_objects = @enemy.steal_objects.clone steal_objects.each_with_index { |item, i| break if (y + 24) > (self.height - 32) next if item == nil case item.kind when 0 next when 1 steal_item = $data_items[item.item_id] when 2 steal_item = $data_weapons[item.weapon_id] when 3 steal_item = $data_armors[item.armor_id] end draw_item_name(steal_item, 0, y) text = sprintf("%d%%", item.success_prob) self.contents.draw_text(0, y, sw, WLH, text, 2) y += WLH } end # make steal page
#-------------------------------------------------------------------------- # make spoils page #-------------------------------------------------------------------------- def make_spoils_page x = 0 y = 0 sw = self.width - 32 #---Encounters--- y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_ENCOUNTER self.contents.draw_text(24, y, sw-24, WLH, text, 0) draw_icon(YE::MENU::MONSTER::ICON_ENCOUNTER, 0, y, true) self.contents.font.color = normal_color if @enemy.encounters_dse == 1 text = sprintf(YE::MENU::MONSTER::VIEW_ENC1, @enemy.encounters_dse) else text = sprintf(YE::MENU::MONSTER::VIEW_ENC2, @enemy.encounters_dse) end self.contents.draw_text(24, y, sw-24, WLH, text, 2) #---Defeated--- y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_KILLED self.contents.draw_text(24, y, sw-24, WLH, text, 0) draw_icon(YE::MENU::MONSTER::ICON_KILLED, 0, y, true) self.contents.font.color = normal_color if @enemy.defeated_dse == 1 text = sprintf(YE::MENU::MONSTER::VIEW_KILLED1, @enemy.defeated_dse) else text = sprintf(YE::MENU::MONSTER::VIEW_KILLED2, @enemy.defeated_dse) end self.contents.draw_text(24, y, sw-24, WLH, text, 2) #---Escaped--- y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_ESCAPED self.contents.draw_text(24, y, sw-24, WLH, text, 0) draw_icon(YE::MENU::MONSTER::ICON_ESCAPED, 0, y, true) self.contents.font.color = normal_color if @enemy.escaped_dse == 1 text = sprintf(YE::MENU::MONSTER::VIEW_ESCAPED1, @enemy.escaped_dse) else text = sprintf(YE::MENU::MONSTER::VIEW_ESCAPED2, @enemy.escaped_dse) end self.contents.draw_text(24, y, sw-24, WLH, text, 2) #---Gold--- y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_GOLD self.contents.draw_text(24, y, sw-24, WLH, text, 0) draw_icon(YE::MENU::MONSTER::ICON_GOLD, 0, y, true) self.contents.font.color = normal_color text = sprintf(YE::MENU::MONSTER::VIEW_GOLD, @enemy.gold) self.contents.draw_text(24, y, sw-24, WLH, text, 2) #---Exp--- y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_EXP self.contents.draw_text(24, y, sw-24, WLH, text, 0) draw_icon(YE::MENU::MONSTER::ICON_EXP, 0, y, true) self.contents.font.color = normal_color text = sprintf(YE::MENU::MONSTER::VIEW_EXP, @enemy.exp) self.contents.draw_text(24, y, sw-24, WLH, text, 2) #---Drops--- if YE::MENU::MONSTER::SPOIL_DROPS and !@enemy.enemy.hide_drops y += WLH drop_items = [@enemy.drop_item1, @enemy.drop_item2] if $imported["ExtraDropItem"] drop_items += @enemy.extra_drop_items end self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_DROPS self.contents.draw_text(0, y, sw, WLH, text, 1) y += WLH drop_items.each_with_index { |item, i| break if (y + 24) > (self.height - 32) case item.kind when 0 next when 1 drop_item = $data_items[item.item_id] when 2 drop_item = $data_weapons[item.weapon_id] when 3 drop_item = $data_armors[item.armor_id] end draw_item_name(drop_item, 0, y) if $imported["ExtraDropItem"] && item.drop_prob > 0 text = sprintf("%d%%", item.drop_prob) else text = sprintf("%d%%", 1 * 100 /item.denominator) end self.contents.draw_text(0, y, sw, WLH, text, 2) y += WLH } end end # make spoils page
#-------------------------------------------------------------------------- # make drops page #-------------------------------------------------------------------------- def make_drops_page x = 0 y = 0 sw = self.width - 32 y += WLH self.contents.font.color = text_color(@category_colour) text = YE::MENU::MONSTER::DATA_D_ITEM self.contents.draw_text(0, y, sw, WLH, text, 0) text = YE::MENU::MONSTER::DATA_D_CHANCE self.contents.draw_text(0, y, sw, WLH, text, 2) y += WLH drop_items = [@enemy.drop_item1, @enemy.drop_item2] if $imported["ExtraDropItem"] drop_items += @enemy.extra_drop_items end drop_items.each_with_index { |item, i| break if (y + 24) > (self.height - 32) case item.kind when 0 next when 1 drop_item = $data_items[item.item_id] when 2 drop_item = $data_weapons[item.weapon_id] when 3 drop_item = $data_armors[item.armor_id] end draw_item_name(drop_item, 0, y) if $imported["ExtraDropItem"] && item.drop_prob > 0 text = sprintf("%d%%", item.drop_prob) else text = sprintf("%d%%", 1 * 100 /item.denominator) end self.contents.draw_text(0, y, sw, WLH, text, 2) y += WLH } end # make drops page
#-------------------------------------------------------------------------- # create_total_pages #-------------------------------------------------------------------------- def create_total_pages @contents = [] @contents.push(0) if YE::MENU::MONSTER::SHOW_GENERAL #---------------- action_list = [] for action in @enemy.enemy.actions if action.kind == 1 obj = $data_skills[action.skill_id] action_list.push(obj) unless action_list.include?(obj) end end if YE::MENU::MONSTER::SHOW_SKILLS and action_list != [] if @require if $game_party.scan_skill.include?(@enemy.enemy_id) @contents.push(1) unless @enemy.enemy.hide_skill end else @contents.push(1) unless @enemy.enemy.hide_skill end end #---------------- if YE::MENU::MONSTER::SHOW_ELEMENTS if @require if $game_party.scan_elem.include?(@enemy.enemy_id) @contents.push(2) unless @enemy.enemy.hide_elem end else @contents.push(2) unless @enemy.enemy.hide_elem end end #---------------- if YE::MENU::MONSTER::SHOW_STATES if @require if $game_party.scan_state.include?(@enemy.enemy_id) @contents.push(3) unless @enemy.enemy.hide_state end else @contents.push(3) unless @enemy.enemy.hide_state end end #---------------- if YE::MENU::MONSTER::SHOW_STEAL and $imported["Steal"] if @require if $game_party.scan_steal.include?(@enemy.enemy_id) @contents.push(80) unless @enemy.enemy.hide_steal end else @contents.push(80) unless @enemy.enemy.hide_steal end end #---------------- if YE::MENU::MONSTER::SHOW_SPOILS if @require if $game_party.scan_spoil.include?(@enemy.enemy_id) @contents.push(90) unless @enemy.enemy.hide_spoil end else @contents.push(90) unless @enemy.enemy.hide_spoil end end #---------------- if YE::MENU::MONSTER::SHOW_DROPS if @require if $game_party.scan_drops.include?(@enemy.enemy_id) @contents.push(91) unless @enemy.enemy.hide_drops end else @contents.push(91) unless @enemy.enemy.hide_drops end end #---------------- if YE::MENU::MONSTER::SHOW_NOTES if @require if YE::HASH::ENEMY_NOTES.include?(@enemy.enemy_id) @contents.push(100) if $game_party.scan_desc.include?(@enemy.enemy_id) end else if YE::HASH::ENEMY_NOTES.include?(@enemy.enemy_id) @contents.push(100) end end end #---------------- n = @contents.size return n end
#-------------------------------------------------------------------------- # case_page_name #-------------------------------------------------------------------------- def case_page_name(pagecase) if pagecase == 0 text = YE::MENU::MONSTER::TITLE_GENERAL elsif pagecase == 1 text = YE::MENU::MONSTER::TITLE_SKILLS elsif pagecase == 2 text = YE::MENU::MONSTER::TITLE_ELEMENTS elsif pagecase == 3 text = YE::MENU::MONSTER::TITLE_STATES elsif pagecase == 80 text = YE::MENU::MONSTER::TITLE_STEAL elsif pagecase == 90 text = YE::MENU::MONSTER::TITLE_SPOILS elsif pagecase == 91 text = YE::MENU::MONSTER::TITLE_DROPS elsif pagecase == 100 text = YE::MENU::MONSTER::TITLE_NOTES else text = YE::MENU::MONSTER::TITLE_UNKNOWN end return text end
#=============================================================================== # # END OF FILE # #===============================================================================
Garruk, j'utillise le SBS 3.4 sans ATB
Merci de votre aide, à tous les deux Amicalement Gunslinger
Malum
Révolutionnaire mais ça rentrait pas alors autre chose
Age : 30 Inscrit le : 28/05/2010 Messages : 1537
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 16 Juil 2012 - 21:44
J'ai jeté un coup d'oeil au script et en effet, avec le SBS, ça ne veut pas fonctionner. La fenêtre "clickez sur MaJ pour scanner" n'apparait même pas ! ça doit venir d'une incompatibilité entre les 2 scripts ! J'essais de corriger ça ce soir/demain =)
Gunslinger
Poulet trizo Lv.3
Age : 29 Inscrit le : 31/10/2011 Messages : 31
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Ven 20 Juil 2012 - 19:39
Merci de m'aider pour mon problême Malum !!
J'espère que cela ne va pa trop te résister
Amicalement Gunslinger
Angellan
Admindictatrice
Age : 34 Inscrit le : 27/02/2009 Messages : 2855
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Lun 6 Aoû 2012 - 14:01
Ou ça en est ?
Gunslinger
Poulet trizo Lv.3
Age : 29 Inscrit le : 31/10/2011 Messages : 31
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan Sam 18 Aoû 2012 - 9:46
Bonjour Angellan,
Je n'ai plus de réponse de Malum
Contenu sponsorisé
Sujet: Re: Problême SBS Takentaï et script Yanfly bestiaire + scan
Problême SBS Takentaï et script Yanfly bestiaire + scan