Страница 79 из 190 ПерваяПервая ... 2969777879808189129179 ... ПоследняяПоследняя
Показано с 781 по 790 из 1899

Тема: Поиск скриптов

  1. #781
    Познающий Аватар для Kolhe
    Информация о пользователе
    Регистрация
    06.11.2012
    Адрес
    Омск
    Сообщений
    470
    Репутация: 27 Добавить или отнять репутацию

    По умолчанию

    Таннари
    Эм, ну это оно и есть.


  2. #782
    Познающий Аватар для Alerent
    Информация о пользователе
    Регистрация
    07.03.2013
    Адрес
    Ад, 6 круг
    Сообщений
    429
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Да это оно и есть , просто JP переименуй в LP , и сделай получение только по уровню. И будет тебя счастье.

    Спойлер JP:
    Код:
    #==============================================================================
    # 
    # ▼ Yanfly Engine Ace - JP Manager v1.00
    # -- Last Updated: 2012.01.07
    # -- Level: Normal, Hard
    # -- Requires: n/a
    # 
    #==============================================================================
    
    $imported = {} if $imported.nil?
    $imported["YEA-JPManager"] = true
    
    #==============================================================================
    # ▼ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2012.01.07 - Started Script and Finished.
    # 
    #==============================================================================
    # ▼ Introduction
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script provides a base for JP implementation. JP is a currency similar
    # to EXP that's gained through performing actions and leveling up in addition
    # to killing enemies. This script provides modifiers that adjust the gains for
    # JP through rates, individual gains per skill or item, and per enemy. Though
    # this script provides no usage of JP by itself, future Yanfly Engine Ace
    # scripts may make use of it.
    # 
    #==============================================================================
    # ▼ Instructions
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # To install this script, open up your script editor and copy/paste this script
    # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
    # 
    # -----------------------------------------------------------------------------
    # Actor Notetags - These notetags go in the actors notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp rate: x%>
    # Changes the JP earned rate to x%. This affects JP earned and not JP directly
    # gained. If this notetag isn't used, the object will default to 100%.
    # 
    # -----------------------------------------------------------------------------
    # Class Notetags - These notetags go in the class notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp rate: x%>
    # Changes the JP earned rate to x%. This affects JP earned and not JP directly
    # gained. If this notetag isn't used, the object will default to 100%.
    # 
    # -----------------------------------------------------------------------------
    # Skill Notetags - These notetags go in the skills notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp gain: x>
    # When the actor successfully hits an target with this action, the actor will
    # earn x JP. If this notetag isn't used, the amount of JP earned will equal to
    # the ACTION_JP constant in the module.
    # 
    # -----------------------------------------------------------------------------
    # Item Notetags - These notetags go in the items notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp gain: x>
    # When the actor successfully hits an target with this action, the actor will
    # earn x JP. If this notetag isn't used, the amount of JP earned will equal to
    # the ACTION_JP constant in the module.
    # 
    # -----------------------------------------------------------------------------
    # Weapon Notetags - These notetags go in the weapon notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp rate: x%>
    # Changes the JP earned rate to x%. This affects JP earned and not JP directly
    # gained. If this notetag isn't used, the object will default to 100%.
    # 
    # -----------------------------------------------------------------------------
    # Armour Notetags - These notetags go in the armour notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp rate: x%>
    # Changes the JP earned rate to x%. This affects JP earned and not JP directly
    # gained. If this notetag isn't used, the object will default to 100%.
    # 
    # -----------------------------------------------------------------------------
    # Enemy Notetags - These notetags go in the enemy notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp gain: x>
    # Changes the amount of JP gained for killing the enemy to x. If this notetag
    # isn't used, then the default JP gain will be equal to the amount set in the
    # module through the constant ENEMY_KILL.
    # 
    # -----------------------------------------------------------------------------
    # State Notetags - These notetags go in the states notebox in the database.
    # -----------------------------------------------------------------------------
    # <jp rate: x%>
    # Changes the JP earned rate to x%. This affects JP earned and not JP directly
    # gained. If this notetag isn't used, the object will default to 100%.
    # 
    # -----------------------------------------------------------------------------
    # Script Calls - These commands are used with script calls.
    # -----------------------------------------------------------------------------
    # $game_actors[x].earn_jp(y)
    # $game_actors[x].earn_jp(y, z)
    # This will cause actor x to earn y amount of JP. JP earned will be modified by
    # any JP Rate traits provided through notetags. If z is used, z will be the
    # class the JP is earned for.
    # 
    # $game_actors[x].gain_jp(y)
    # $game_actors[x].gain_jp(y, z)
    # This will cause actor x to gain y amount of JP. JP gained this way will not
    # be modified by any JP Rate traits provided through notetags. If z is used,
    # z will be the class the JP is gained for.
    # 
    # $game_actors[x].lose_jp(y)
    # $game_actors[x].lose_jp(y, z)
    # This will cause actor x to lose y amount of JP. JP lost this way will not be
    # modified by any JP Rate traits provided through notetags. If z is used, z
    # will be the class the JP is lost from.
    # 
    #==============================================================================
    # ▼ Compatibility
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
    # it will run with RPG Maker VX without adjusting.
    # 
    # This script is compatible with Yanfly Engine Ace - Victory Aftermath v1.03+.
    # If you wish to have Victory Aftermath display JP gains, make sure the version
    # is 1.03+. Script placement of these two scripts don't matter.
    # 
    #==============================================================================
    
    module YEA
      module JP
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - General JP Settings -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # This adjusts the way JP appears visually in your game. Change the icon
        # used and the vocabulary used here. Furthermore, adjust the maximum amount
        # of JP that an actor can have at a time.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        ICON   = 0           # Icon index used to represent JP.
        VOCAB  = " LP"        # What JP will be called in your game.
        MAX_JP = 99999999    # Maximum JP an actor can have.
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Default JP Gain Settings -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # The following constants adjust how much JP is earned by default through
        # enemy kills, leveling up, and performing actions.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        ENEMY_KILL = 0     # JP earned for the whole party.
        LEVEL_UP   = 2    # JP earned when leveling up!
        ACTION_JP  = 0      # JP earned per successful hit.
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Victory Message -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # This adjusts the victory message shown for the default battle system and
        # the Yanfly Engine Ace - Victory Aftermath script (if used together).
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        VICTORY_MESSAGE   = ""
        VICTORY_AFTERMATH = ""
        
      end # JP
    end # YEA
    
    #==============================================================================
    # ▼ Editting anything past this point may potentially result in causing
    # computer damage, incontinence, explosion of user's head, coma, death, and/or
    # halitosis so edit at your own risk.
    #==============================================================================
    
    module YEA
      module REGEXP
      module BASEITEM
        
        JP_RATE = /<(?:JP_RATE|jp rate):[ ](\d+)([%%])>/i
        
      end # BASEITEM
      module USABLEITEM
        
        JP_GAIN = /<(?:JP_GAIN|jp gain):[ ](\d+)>/i
        
      end # USABLEITEM
      module ENEMY
        
        JP_GAIN = /<(?:JP_GAIN|jp gain):[ ](\d+)>/i
        
      end # ENEMY
      end # REGEXP
    end # YEA
    
    #==============================================================================
    # ■ Vocab
    #==============================================================================
    
    module Vocab
      
      #--------------------------------------------------------------------------
      # new method: self.jp
      #--------------------------------------------------------------------------
      def self.jp
        return YEA::JP::VOCAB
      end
      
    end # Vocab
    
    #==============================================================================
    # ■ Icon
    #==============================================================================
    
    module Icon
      
      #--------------------------------------------------------------------------
      # self.jp
      #--------------------------------------------------------------------------
      def self.jp; return YEA::JP::ICON; end
        
    end # Icon
    
    #==============================================================================
    # ■ Numeric
    #==============================================================================
    
    class Numeric
      
      #--------------------------------------------------------------------------
      # new method: group_digits
      #--------------------------------------------------------------------------
      unless $imported["YEA-CoreEngine"]
      def group; return self.to_s; end
      end # $imported["YEA-CoreEngine"]
        
    end # Numeric
    
    #==============================================================================
    # ■ DataManager
    #==============================================================================
    
    module DataManager
      
      #--------------------------------------------------------------------------
      # alias method: load_database
      #--------------------------------------------------------------------------
      class <<self; alias load_database_jp load_database; end
      def self.load_database
        load_database_jp
        load_notetags_jp
      end
      
      #--------------------------------------------------------------------------
      # new method: load_notetags_jp
      #--------------------------------------------------------------------------
      def self.load_notetags_jp
        groups = [$data_actors, $data_classes, $data_weapons, $data_armors,
          $data_states, $data_enemies, $data_items, $data_skills]
        for group in groups
          for obj in group
            next if obj.nil?
            obj.load_notetags_jp
          end
        end
      end
      
    end # DataManager
    
    #==============================================================================
    # ■ RPG::BaseItem
    #==============================================================================
    
    class RPG::BaseItem
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :jp_rate
      
      #--------------------------------------------------------------------------
      # common cache: load_notetags_jp
      #--------------------------------------------------------------------------
      def load_notetags_jp
        @jp_rate = 1.0
        #---
        self.note.split(/[\r\n]+/).each { |line|
          case line
          #---
          when YEA::REGEXP::BASEITEM::JP_RATE
            @jp_rate = $1.to_i * 0.01
          #---
          end
        } # self.note.split
        #---
      end
      
    end # RPG::BaseItem
    
    #==============================================================================
    # ■ RPG::UsableItem
    #==============================================================================
    
    class RPG::UsableItem < RPG::BaseItem
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :jp_gain
      
      #--------------------------------------------------------------------------
      # common cache: load_notetags_jp
      #--------------------------------------------------------------------------
      def load_notetags_jp
        @jp_gain = YEA::JP::ACTION_JP
        #---
        self.note.split(/[\r\n]+/).each { |line|
          case line
          #---
          when YEA::REGEXP::USABLEITEM::JP_GAIN
            @jp_gain = $1.to_i
          #---
          end
        } # self.note.split
        #---
      end
      
    end # RPG::UsableItem
    
    #==============================================================================
    # ■ RPG::Enemy
    #==============================================================================
    
    class RPG::Enemy < RPG::BaseItem
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :jp_gain
      
      #--------------------------------------------------------------------------
      # common cache: load_notetags_jp
      #--------------------------------------------------------------------------
      def load_notetags_jp
        @jp_gain = YEA::JP::ENEMY_KILL
        #---
        self.note.split(/[\r\n]+/).each { |line|
          case line
          #---
          when YEA::REGEXP::ENEMY::JP_GAIN
            @jp_gain = $1.to_i
          #---
          end
        } # self.note.split
        #---
      end
      
    end # RPG::Enemy
    
    #==============================================================================
    # ■ BattleManager
    #==============================================================================
    
    module BattleManager
      
      #--------------------------------------------------------------------------
      # alias method: display_exp
      #--------------------------------------------------------------------------
      unless $imported["YEA-VictoryAftermath"]
      class <<self; alias battlemanager_display_exp_jp display_exp; end
      def self.display_exp
        battlemanager_display_exp_jp
        gain_jp
      end
      end # $imported["YEA-VictoryAftermath"]
      
      #--------------------------------------------------------------------------
      # new method: gain_jp
      #--------------------------------------------------------------------------
      def self.gain_jp
        amount = $game_troop.jp_total
        fmt = YEA::JP::VICTORY_MESSAGE
        for member in $game_party.members
          member.earn_jp(amount)
          next if $imported["YEA-VictoryAftermath"]
          value = member.battle_jp_earned.group
          $game_message.add('\.' + sprintf(fmt, member.name, value, Vocab::jp))
        end
        wait_for_message unless $imported["YEA-VictoryAftermath"]
      end
      
    end # BattleManager
    
    #==============================================================================
    # ■ Game_BattlerBase
    #==============================================================================
    
    class Game_BattlerBase
      
      #--------------------------------------------------------------------------
      # new method: jpr
      #--------------------------------------------------------------------------
      def jpr
        n = 1.0
        if actor?
          n *= self.actor.jp_rate
          n *= self.class.jp_rate
          for equip in equips
            next if equip.nil?
            n *= equip.jp_rate
          end
        end
        for state in states
          next if state.nil?
          n *= state.jp_rate
        end
        return n
      end
      
    end # Game_BattlerBase
    
    #==============================================================================
    # ■ Game_Battler
    #==============================================================================
    
    class Game_Battler < Game_BattlerBase
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :battle_jp_earned
      
      #--------------------------------------------------------------------------
      # alias method: on_battle_start
      #--------------------------------------------------------------------------
      alias game_battler_on_battle_start_jp on_battle_start
      def on_battle_start
        game_battler_on_battle_start_jp
        @battle_jp_earned = 0
      end
      
      #--------------------------------------------------------------------------
      # alias method: on_battle_end
      #--------------------------------------------------------------------------
      alias game_battler_on_battle_end_jp on_battle_end
      def on_battle_end
        game_battler_on_battle_end_jp
        @battle_jp_earned = 0
      end
      
      #--------------------------------------------------------------------------
      # alias method: item_user_effect
      #--------------------------------------------------------------------------
      alias game_battler_item_user_effect_jp item_user_effect
      def item_user_effect(user, item)
        game_battler_item_user_effect_jp(user, item)
        user.earn_jp(item.jp_gain) if user.actor?
      end
      
    end # Game_Battler
    
    #==============================================================================
    # ■ Game_Actor
    #==============================================================================
    
    class Game_Actor < Game_Battler
      
      #--------------------------------------------------------------------------
      # alias method: setup
      #--------------------------------------------------------------------------
      alias game_actor_setup_jp setup
      def setup(actor_id)
        game_actor_setup_jp(actor_id)
        init_jp
      end
      
      #--------------------------------------------------------------------------
      # new method: init_jp
      #--------------------------------------------------------------------------
      def init_jp
        @jp = {}
        @jp[@class_id] = 0
      end
      
      #--------------------------------------------------------------------------
      # new method: earn_jp
      #--------------------------------------------------------------------------
      def earn_jp(jp, class_id = nil)
        gain_jp(jp * jpr, class_id)
      end
      
      #--------------------------------------------------------------------------
      # new method: gain_jp
      #--------------------------------------------------------------------------
      def gain_jp(jp, class_id = nil)
        init_jp if @jp.nil?
        class_id = @class_id if class_id.nil?
        @jp[class_id] = 0 if @jp[class_id].nil?
        @jp[class_id] += jp.to_i
        @jp[class_id] = [[@jp[class_id], YEA::JP::MAX_JP].min, 0].max
        @battle_jp_earned = 0 if @battle_jp_earned.nil? && $game_party.in_battle
        @battle_jp_earned += jp.to_i if $game_party.in_battle
      end
      
      #--------------------------------------------------------------------------
      # new method: lose_jp
      #--------------------------------------------------------------------------
      def lose_jp(jp, class_id = nil)
        gain_jp(-jp, class_id)
      end
      
      #--------------------------------------------------------------------------
      # new method: jp
      #--------------------------------------------------------------------------
      def jp(class_id = nil)
        class_id = @class_id if class_id.nil?
        @jp[class_id] = 0 if @jp[class_id].nil?
        return @jp[class_id]
      end
      
      #--------------------------------------------------------------------------
      # alias method: level_up
      #--------------------------------------------------------------------------
      alias game_actor_level_up_jp level_up
      def level_up
        game_actor_level_up_jp
        earn_jp(YEA::JP::LEVEL_UP)
      end
      
    end # Game_Actor
    
    #==============================================================================
    # ■ Game_Enemy
    #==============================================================================
    
    class Game_Enemy < Game_Battler
      
      #--------------------------------------------------------------------------
      # new method: jp
      #--------------------------------------------------------------------------
      def jp
        return enemy.jp_gain
      end
      
    end # Game_Enemy
    
    #==============================================================================
    # ■ Game_Troop
    #==============================================================================
    
    class Game_Troop < Game_Unit
      
      #--------------------------------------------------------------------------
      # new method: jp_total
      #--------------------------------------------------------------------------
      def jp_total
        dead_members.inject(0) {|r, enemy| r += enemy.jp }
      end
      
    end # Game_Troop
    
    #==============================================================================
    # ■ Window_Base
    #==============================================================================
    
    class Window_Base < Window
      
      #--------------------------------------------------------------------------
      # new method: draw_actor_jp
      #--------------------------------------------------------------------------
      def draw_actor_jp(actor, dx, dy, dw = 112)
        draw_icon(Icon.jp, dx + dw - 24, dy) if Icon.jp > 0
        dw -= 24 if Icon.jp > 0
        change_color(system_color)
        draw_text(dx, dy, dw, line_height, Vocab::jp, 2)
        dw -= text_size(Vocab::jp).width
        change_color(normal_color)
        draw_text(dx, dy, dw, line_height, actor.jp.group, 2)
      end
      
      #--------------------------------------------------------------------------
      # new method: draw_actor_jp_class
      #--------------------------------------------------------------------------
      def draw_actor_jp_class(actor, class_id, dx, dy, dw = 112)
        draw_icon(Icon.jp, dx + dw - 24, dy) if Icon.jp > 0
        dw -= 24 if Icon.jp > 0
        change_color(system_color)
        draw_text(dx, dy, dw, line_height, Vocab::jp, 2)
        dw -= text_size(Vocab::jp).width
        change_color(normal_color)
        draw_text(dx, dy, dw, line_height, actor.jp(class_id).group, 2)
      end
      
    end # Window_Base
    
    #==============================================================================
    # 
    # ▼ End of File
    # 
    #==============================================================================


    Спойлер SKILLS:
    Код:
    #==============================================================================
    # 
    # ▼ Yanfly Engine Ace - Learn Skill Engine v1.00
    # -- Last Updated: 2012.01.08
    # -- Level: Normal, Hard
    # -- Requires: n/a
    # 
    #==============================================================================
    
    $imported = {} if $imported.nil?
    $imported["YEA-LearnSkillEngine"] = true
    
    #==============================================================================
    # ▼ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2012.01.08 - Started Script and Finished.
    # 
    #==============================================================================
    # ▼ Introduction
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # For those who want an alternative for actors to learn skills outside of
    # leveling, this script allows actors to learn skills through a learn skill
    # menu. The actor can use acquired JP, EXP, or Gold to learn skills. Skills can
    # also be hidden until certain requirements are met.
    # 
    #==============================================================================
    # ▼ Instructions
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # To install this script, open up your script editor and copy/paste this script
    # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
    # 
    # -----------------------------------------------------------------------------
    # Class Notetags - These notetags go in the class notebox in the database.
    # -----------------------------------------------------------------------------
    # <learn skills: x>
    # <learn skills: x, x>
    # Sets the class to be able to learn skills x through the Learn Skills menu.
    # Insert multiple of these tags to increase the number of skills learned.
    # 
    # -----------------------------------------------------------------------------
    # Skill Notetags - These notetags go in the skill notebox in the database.
    # -----------------------------------------------------------------------------
    # <learn cost: x jp>
    # <learn cost: x exp>
    # <learn cost: x gold>
    # Sets the learn for cost the skill to require x amounts of JP, x amounts of
    # exp, or x amounts of gold. Only one type of cost can be used at a time. For
    # JP costs, the Yanfly Engine Ace - JP Manager script must be installed.
    # 
    # <learn require level: x>
    # Sets the skill to require the actor's current level to be x before the skill
    # will show up in the skill learning window.
    # 
    # <learn require skill: x>
    # <learn require skill: x, x>
    # Sets the skill to require learning skill x (through any means) before the
    # skill becomes visible in the skill learning window. Insert multiples of these
    # tags to require more skills to be learned in order for the skill to show.
    # 
    # <learn require switch: x>
    # <learn require switch: x, x>
    # Sets the skill to require switch x to be ON in order for it to show in the
    # skill learning window. Insert multiple switches to to increase the number of
    # switches needed to be ON before the skill is shown.
    # 
    # <learn require eval>
    #  string
    #  string
    # </learn require eval>
    # For the more advanced users, replace string with lines of code to check for
    # whether or not the skill will be shown in skill learning window. If multiple
    # lines are used, they are all considered part of the same line.
    # 
    #==============================================================================
    # ▼ Compatibility
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
    # it will run with RPG Maker VX without adjusting.
    # 
    # This script is compatible with Yanfly Engine Ace - JP Manager v1.00+. The
    # placement of this script relative to the JP Manager script doesn't matter.
    # 
    #==============================================================================
    
    module YEA
      module LEARN_SKILL
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - General Settings -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # Adjust the general settings here for your game. These adjust how the
        # command name appears, a switch to show the Learn Command
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        COMMAND_NAME = "Выучить"    # Name used for Learn Skill command.
        
        # This switch will hide the "Learn" command from view if the switch is OFF.
        # The "Learn" command will be shown if the switch is ON. Set this switch to
        # 0 to not use this effect and to always have the Learn command be shown.
        SHOW_SWITCH   = 0
        
        # This adjusts the order the Skill Types appear in for the command window.
        # Any Skill Types unlisted will not be shown. 
        STYPE_ORDER = [41..999, 1..40]
        
        # For those who installed Yanfly Engine - Skill Restrictions, you can
        # choose to display warmups or cooldowns inside of the menu here.
        DRAW_WARMUP   = false      # Draw warmups for skills?
        DRAW_COOLDOWN = false       # Draw cooldowns for skills?
        
        #-------------------------------------------------------------------------
        # - Default Cost -
        #-------------------------------------------------------------------------
        # This sets the default costs for all skills. If the JP script isn't
        # installed, the type will become :exp instead.
        # 
        # Cost Type       Description
        #  :jp            - Requires YEA - JP Manager.
        #  :exp           - Makes skill cost EXP.
        #  :gold          - Makes skill cost gold.
        #-------------------------------------------------------------------------
        DEFAULT_COST = 10           # Sets the default cost of a skill.
        DEFAULT_TYPE = :jp          # Sets the default cost type.
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Learn Window Settings -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # These settings adjust the Learn Window's visual appearance. Adjust the
        # way empty text appears, EXP cost suffixes appear, Learned text appears,
        # font sizes, and cost colours here.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        EMPTY_TEXT     = "-"        # Text if no restricts used for the skill.
        EXP_TEXT       = "EXP"      # Text used for EXP costs.
        LEARNED_TEXT   = "Изучено"  # Text to indicate skill has been learned.
        LEARNED_SIZE   = 20         # Font size used for learned skill text.
        COLOUR_JP      = 24         # Text colour used for JP Cost.
        COLOUR_EXP     =  5         # Text colour used for EXP Cost.
        COLOUR_GOLD    = 21         # Text colour used for Gold Cost.
        COST_SIZE      = 20         # Font size used for skill costs.
        
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # - Cost Window Settings -
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        # When a skill is selected to be learned, the cost window appears. Adjust
        # the settings here to choose how your game's cost window looks. Change the
        # maximum number of rows, the gold icon used for gold costs, the gold text,
        # the learn skill text, the cancel text, and the cancel icon here.
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        MAXIMUM_ROWS      = 8               # Maximum number of rows displayed.
        GOLD_ICON         = 361             # Icon used for gold costs.
        GOLD_TEXT         = "Gold Cost"     # Text used for gold costs.
        LEARN_SKILL_TEXT  = "Выучить %s?"     # Text used to learn skill.
        LEARN_CANCEL_TEXT = "Отменя"        # Text used for do not learn.
        CANCEL_ICON       = 187             # Icon used for cancel.
        
      end # LEARN_SKILL
    end # YEA
    
    #==============================================================================
    # ▼ Editting anything past this point may potentially result in causing
    # computer damage, incontinence, explosion of user's head, coma, death, and/or
    # halitosis so edit at your own risk.
    #==============================================================================
    
    module YEA
      module LEARN_SKILL
        module_function
        #--------------------------------------------------------------------------
        # convert_integer_array
        #--------------------------------------------------------------------------
        def convert_integer_array(array)
          result = []
          array.each { |i|
            case i
            when Range; result |= i.to_a
            when Integer; result |= [i]
            end }
          return result
        end
        #--------------------------------------------------------------------------
        # converted_contants
        #--------------------------------------------------------------------------
        STYPE_ORDER = convert_integer_array(STYPE_ORDER)
      end # LEARN_SKILL
      module REGEXP
      module CLASS
        
        LEARN_SKILLS = /<(?:LEARN_SKILLS|learn skills):[ ](\d+(?:\s*,\s*\d+)*)>/i
        
      end # CLASS
      module SKILL
        
        LEARN_COST = /<(?:LEARN_COST|learn cost):[ ](.*)>/i
        LEARN_REQUIRE_LEVEL = 
          /<(?:LEARN_REQUIRE_LEVEL|learn require level):[ ](\d+)>/i
        LEARN_REQUIRE_SKILL =
          /<(?:LEARN_REQUIRE_SKILL|learn require skill):[ ](\d+(?:\s*,\s*\d+)*)>/i
        LEARN_REQUIRE_SWITCH =
          /<(?:LEARN_REQUIRE_SWITCH|learn require switch):[ ](\d+(?:\s*,\s*\d+)*)>/i
        LEARN_REQUIRE_EVAL_ON  = /<(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
        LEARN_REQUIRE_EVAL_OFF = /<\/(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
        
      end # SKILL
      end # REGEXP
    end # YEA
    
    #==============================================================================
    # ■ Numeric
    #==============================================================================
    
    class Numeric
      
      #--------------------------------------------------------------------------
      # new method: group_digits
      #--------------------------------------------------------------------------
      unless $imported["YEA-CoreEngine"]
      def group; return self.to_s; end
      end # $imported["YEA-CoreEngine"]
        
    end # Numeric
    
    #==============================================================================
    # ■ Icon
    #==============================================================================
    
    module Icon
      
      #--------------------------------------------------------------------------
      # self.cancel
      #--------------------------------------------------------------------------
      def self.cancel
        return YEA::LEARN_SKILL::CANCEL_ICON
      end
      
      #--------------------------------------------------------------------------
      # self.learn_skill_gold
      #--------------------------------------------------------------------------
      def self.learn_skill_gold
        return YEA::LEARN_SKILL::GOLD_ICON
      end
      
    end # Icon
    
    #==============================================================================
    # ■ Switch
    #==============================================================================
    
    module Switch
      
      #--------------------------------------------------------------------------
      # self.show_learn_skill
      #--------------------------------------------------------------------------
      def self.show_learn_skill
        return true if YEA::LEARN_SKILL::SHOW_SWITCH <= 0
        return $game_switches[YEA::LEARN_SKILL::SHOW_SWITCH]
      end
      
    end # Switch
    
    #==============================================================================
    # ■ DataManager
    #==============================================================================
    
    module DataManager
      
      #--------------------------------------------------------------------------
      # alias method: load_database
      #--------------------------------------------------------------------------
      class <<self; alias load_database_lse load_database; end
      def self.load_database
        load_database_lse
        load_notetags_lse
      end
      
      #--------------------------------------------------------------------------
      # new method: load_notetags_lse
      #--------------------------------------------------------------------------
      def self.load_notetags_lse
        groups = [$data_classes, $data_skills]
        for group in groups
          for obj in group
            next if obj.nil?
            obj.load_notetags_lse
          end
        end
      end
      
    end # DataManager
    
    #==============================================================================
    # ■ RPG::Class
    #==============================================================================
    
    class RPG::Class < RPG::BaseItem
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :learn_skills
      
      #--------------------------------------------------------------------------
      # common cache: load_notetags_lse
      #--------------------------------------------------------------------------
      def load_notetags_lse
        @learn_skills = []
        #---
        self.note.split(/[\r\n]+/).each { |line|
          case line
          #---
          when YEA::REGEXP::CLASS::LEARN_SKILLS
            $1.scan(/\d+/).each { |num| 
            @learn_skills.push(num.to_i) if num.to_i > 0 }
          end
        } # self.note.split
        #---
      end
      
    end # RPG::Class
    
    #==============================================================================
    # ■ RPG::Skill
    #==============================================================================
    
    class RPG::Skill < RPG::UsableItem
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :learn_cost
      attr_accessor :learn_require_level
      attr_accessor :learn_require_skill
      attr_accessor :learn_require_switch
      attr_accessor :learn_require_eval
      
      #--------------------------------------------------------------------------
      # common cache: load_notetags_lse
      #--------------------------------------------------------------------------
      def load_notetags_lse
        @learn_cost = [YEA::LEARN_SKILL::DEFAULT_COST]
        @learn_cost.push(YEA::LEARN_SKILL::DEFAULT_TYPE)
        @learn_require_level = 0
        @learn_require_skill = []
        @learn_require_switch = []
        @learn_require_eval_on = false
        #---
        self.note.split(/[\r\n]+/).each { |line|
          case line
          #---
          when YEA::REGEXP::SKILL::LEARN_COST
            case $1.upcase
            when /(\d+)[ ]JP/i
              next unless $imported["YEA-JPManager"]
              @learn_cost = [$1.to_i, :jp]
            when /(\d+)[ ]EXP/i
              @learn_cost = [$1.to_i, :exp]
            when /(\d+)[ ]GOLD/i
              @learn_cost = [$1.to_i, :gold]
            end
          #---
          when YEA::REGEXP::SKILL::LEARN_REQUIRE_LEVEL
            @learn_require_level = $1.to_i
          when YEA::REGEXP::SKILL::LEARN_REQUIRE_SKILL
            $1.scan(/\d+/).each { |num| 
            @learn_require_skill.push(num.to_i) if num.to_i > 0 }
          when YEA::REGEXP::SKILL::LEARN_REQUIRE_SWITCH
            $1.scan(/\d+/).each { |num| 
            @learn_require_switch.push(num.to_i) if num.to_i > 0 }
          #---
          when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_ON
            @learn_require_eval_on = true
          when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_OFF
            @learn_require_eval_on = false
          else
            next unless @learn_require_eval_on
            @learn_require_eval = "" if @learn_require_eval.nil?
            @learn_require_eval += line.to_s
          #---
          end
        } # self.note.split
        #---
        if !$imported["YEA-JPManager"] && @learn_cost[1] == :jp
          @learn_cost[1] = :exp
        end
      end
      
    end # RPG::Skill
    
    #==============================================================================
    # ■ Game_Actor
    #==============================================================================
    
    class Game_Actor < Game_Battler
      
      #--------------------------------------------------------------------------
      # alias method: skills
      #--------------------------------------------------------------------------
      alias game_actor_skills_lse skills
      def skills
        btest_add_learn_skills
        game_actor_skills_lse
      end
      
      #--------------------------------------------------------------------------
      # new method: btest_add_learn_skills
      #--------------------------------------------------------------------------
      def btest_add_learn_skills
        return unless $BTEST
        for skill_id in self.class.learn_skills; learn_skill(skill_id); end
      end
      
      #--------------------------------------------------------------------------
      # new method: exp_class
      #--------------------------------------------------------------------------
      def exp_class(class_id)
        @exp[class_id] = 0 if @exp[class_id].nil?
        return @exp[class_id]
      end
      
      #--------------------------------------------------------------------------
      # lose_exp_class
      #--------------------------------------------------------------------------
      def lose_exp_class(value, class_id)
        exp = exp_class(class_id) - value
        change_exp_class(exp, class_id)
      end
      
      #--------------------------------------------------------------------------
      # change_exp_class
      #--------------------------------------------------------------------------
      def change_exp_class(exp, class_id)
        return change_exp(exp, false) if class_id == @class_id
        @exp[class_id] = [exp, 0].max
      end
      
    end # Game_Actor
    
    #==============================================================================
    # ■ Window_SkillCommand
    #==============================================================================
    
    class Window_SkillCommand < Window_Command
      
      #--------------------------------------------------------------------------
      # alias method: make_command_list
      #--------------------------------------------------------------------------
      alias window_skillcommand_make_command_list_lse make_command_list
      def make_command_list
        window_skillcommand_make_command_list_lse
        return if @actor.nil?
        add_learn_skill_command unless $imported["YEA-SkillMenu"]
      end
      
      #--------------------------------------------------------------------------
      # new method: add_learn_skill_command
      #--------------------------------------------------------------------------
      def add_learn_skill_command
        return unless Switch.show_learn_skill
        name = YEA::LEARN_SKILL::COMMAND_NAME
        add_command(name, :learn_skill, true, @actor.added_skill_types[0])
      end
      
    end # Window_SkillCommand
    
    #==============================================================================
    # ■ Window_LearnSkillCommand
    #==============================================================================
    
    class Window_LearnSkillCommand < Window_Command
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_reader   :skill_window
      
      #--------------------------------------------------------------------------
      # initialize
      #--------------------------------------------------------------------------
      def initialize(dx, dy)
        super(dx, dy)
        @actor = nil
      end
      
      #--------------------------------------------------------------------------
      # window_width
      #--------------------------------------------------------------------------
      def window_width; return 160; end
      
      #--------------------------------------------------------------------------
      # visible_line_number
      #--------------------------------------------------------------------------
      def visible_line_number; return 4; end
      
      #--------------------------------------------------------------------------
      # actor=
      #--------------------------------------------------------------------------
      def actor=(actor)
        return if @actor == actor
        @actor = actor
        refresh
        select(item_max - 1) if index >= item_max
      end
      
      #--------------------------------------------------------------------------
      # make_command_list
      #--------------------------------------------------------------------------
      def make_command_list
        return if @actor.nil?
        make_unlocked_class_skill_types
        correct_unlocked_class_learned_skills
        for stype_id in YEA::LEARN_SKILL::STYPE_ORDER
          next unless include?(stype_id)
          name = $data_system.skill_types[stype_id]
          add_command(name, :skill, true, stype_id)
        end
      end
      
      #--------------------------------------------------------------------------
      # make_unlocked_class_skill_types
      #--------------------------------------------------------------------------
      def make_unlocked_class_skill_types
        return unless $imported["YEA-ClassSystem"]
        @unlocked_types = []
        unlocked_classes = @actor.unlocked_classes.clone
        unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
        for class_id in unlocked_classes
          next if $data_classes[class_id].nil?
          for feature in $data_classes[class_id].features
            next unless feature.code == 41
            @unlocked_types.push(feature.data_id)
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # correct_unlocked_class_learned_skills
      #--------------------------------------------------------------------------
      def correct_unlocked_class_learned_skills
        return unless $imported["YEA-ClassSystem"]
        unlocked_classes = @actor.unlocked_classes.clone
        unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
        for class_id in unlocked_classes
          @actor.learn_class_skills(class_id)
        end
      end
      
      #--------------------------------------------------------------------------
      # include?
      #--------------------------------------------------------------------------
      def include?(stype_id)
        return true if @actor.added_skill_types.include?(stype_id)
        if $imported["YEA-ClassSystem"]
          return true if @unlocked_types.include?(stype_id)
        end
        return false
      end
      
      #--------------------------------------------------------------------------
      # update
      #--------------------------------------------------------------------------
      def update
        super
        @skill_window.stype_id = current_ext if @skill_window
      end
      
      #--------------------------------------------------------------------------
      # skill_window=
      #--------------------------------------------------------------------------
      def skill_window=(skill_window)
        @skill_window = skill_window
        update
      end
      
    end # Window_LearnSkillCommand
    
    #==============================================================================
    # ■ Window_LearnSkillList
    #==============================================================================
    
    class Window_LearnSkillList < Window_SkillList
      
      #--------------------------------------------------------------------------
      # col_max
      #--------------------------------------------------------------------------
      def col_max; return 1; end
      
      #--------------------------------------------------------------------------
      # select_last
      #--------------------------------------------------------------------------
      def select_last; select(0); end
      
      #--------------------------------------------------------------------------
      # actor=
      #--------------------------------------------------------------------------
      def actor=(actor)
        return if @actor == actor
        super(actor)
        make_learn_skills_list
      end
      
      #--------------------------------------------------------------------------
      # make_learn_skills_list
      #--------------------------------------------------------------------------
      def make_learn_skills_list
        @learn_skills = []
        @skill_classes = {}
        return if @actor.nil?
        for skill_id in @actor.class.learn_skills
          next if $data_skills[skill_id].nil?
          next if @learn_skills.include?($data_skills[skill_id])
          skill = $data_skills[skill_id]
          @learn_skills.push(skill)
          @skill_classes[skill] = [] if @skill_classes[skill].nil?
          @skill_classes[skill].push(@actor.class.id)
        end
        make_unlocked_class_skills
      end
      
      #--------------------------------------------------------------------------
      # make_unlocked_class_skills
      #--------------------------------------------------------------------------
      def make_unlocked_class_skills
        return unless $imported["YEA-ClassSystem"]
        @unlocked_types = []
        unlocked_classes = @actor.unlocked_classes.clone
        unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
        for class_id in unlocked_classes
          next if $data_classes[class_id].nil?
          for skill_id in $data_classes[class_id].learn_skills
            next if $data_skills[skill_id].nil?
            skill = $data_skills[skill_id]
            @learn_skills.push(skill) unless @learn_skills.include?(skill)
            @skill_classes[skill] = [] if @skill_classes[skill].nil?
            @skill_classes[skill] |= [class_id]
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # skill_classes
      #--------------------------------------------------------------------------
      def skill_classes(skill)
        return @skill_classes[skill]
      end
      
      #--------------------------------------------------------------------------
      # make_item_list
      #--------------------------------------------------------------------------
      def make_item_list
        return if @learn_skills.nil?
        @data = @learn_skills.select {|skill| include?(skill) }
      end
      
      #--------------------------------------------------------------------------
      # include?
      #--------------------------------------------------------------------------
      def include?(item)
        return false if item.nil?
        return false unless meet_requirements?(item)
        return item.stype_id == @stype_id
      end
      
      #--------------------------------------------------------------------------
      # meet_requirements?
      #--------------------------------------------------------------------------
      def meet_requirements?(item)
        return false if @actor.nil?
        return false unless meet_level_requirements?(item)
        return false unless meet_skill_requirements?(item)
        return false unless meet_switch_requirements?(item)
        return false unless meet_eval_requirements?(item)
        return true
      end
      
      #--------------------------------------------------------------------------
      # meet_level_requirements?
      #--------------------------------------------------------------------------
      def meet_level_requirements?(item)
        return @actor.level >= item.learn_require_level
      end
      
      #--------------------------------------------------------------------------
      # meet_skill_requirements?
      #--------------------------------------------------------------------------
      def meet_skill_requirements?(item)
        for skill_id in item.learn_require_skill
          next if $data_skills[skill_id].nil?
          return false unless @actor.skill_learn?($data_skills[skill_id])
        end
        return true
      end
      
      #--------------------------------------------------------------------------
      # meet_switch_requirements?
      #--------------------------------------------------------------------------
      def meet_switch_requirements?(item)
        for switch_id in item.learn_require_switch
          return false unless $game_switches[switch_id]
        end
        return true
      end
      
      #--------------------------------------------------------------------------
      # meet_eval_requirements?
      #--------------------------------------------------------------------------
      def meet_eval_requirements?(item)
        return true if item.learn_require_eval.nil?
        return eval(item.learn_require_eval)
      end
      
      #--------------------------------------------------------------------------
      # enable?
      #--------------------------------------------------------------------------
      def enable?(skill)
        return false if skill.nil?
        return false unless enabled_jp?(skill)
        return false unless enabled_exp?(skill)
        return false unless enabled_gold?(skill)
        return !@actor.skill_learn?(skill)
      end
      
      #--------------------------------------------------------------------------
      # enabled_jp?
      #--------------------------------------------------------------------------
      def enabled_jp?(skill)
        return true if skill.learn_cost[1] != :jp
        cost = skill.learn_cost[0]
        for class_id in @skill_classes[skill]
          return true if @actor.jp(class_id) >= cost
        end
        return false
      end
      
      #--------------------------------------------------------------------------
      # enabled_exp?
      #--------------------------------------------------------------------------
      def enabled_exp?(skill)
        return true if skill.learn_cost[1] != :exp
        cost = skill.learn_cost[0]
        for class_id in @skill_classes[skill]
          return true if @actor.exp_class(class_id) >= cost
        end
        return false
      end
      
      #--------------------------------------------------------------------------
      # enabled_gold?
      #--------------------------------------------------------------------------
      def enabled_gold?(skill)
        return true if skill.learn_cost[1] != :gold
        cost = skill.learn_cost[0]
        return $game_party.gold >= cost
      end
      
      #--------------------------------------------------------------------------
      # draw_item
      #--------------------------------------------------------------------------
      def draw_item(index)
        skill = @data[index]
        return if skill.nil?
        rect = item_rect(index)
        rect.width = (contents.width - spacing) / 2 - 4
        draw_item_name(skill, rect.x, rect.y, enable?(skill), rect.width - 24)
        draw_skill_cost(rect, skill)
        draw_restriction_info(skill, index)
        draw_learn_cost(skill, index)
      end
      
      #--------------------------------------------------------------------------
      # skill_restriction?
      #--------------------------------------------------------------------------
      def skill_restriction?(index)
        return false
      end
      
      #--------------------------------------------------------------------------
      # draw_restriction_info
      #--------------------------------------------------------------------------
      def draw_restriction_info(skill, index)
        return unless $imported["YEA-SkillRestrictions"]
        rect = item_rect(index)
        rect.x = contents.width / 2
        rect.width /= 2
        rect.width /= 3
        rect.width -= 8
        draw_skill_warmup(skill, rect)
        rect.x += rect.width + 4
        draw_skill_cooldown(skill, rect)
      end
      
      #--------------------------------------------------------------------------
      # draw_skill_warmup
      #--------------------------------------------------------------------------
      def draw_skill_warmup(skill, rect)
        return unless YEA::LEARN_SKILL::DRAW_WARMUP
        enabled = enable?(skill)
        enabled = false if skill.warmup <= 0
        change_color(warmup_colour, enabled)
        icon = Icon.warmup
        if icon > 0
          draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
          rect.width -= 24
        end
        contents.font.size = YEA::SKILL_RESTRICT::WARMUP_SIZE
        value = skill.warmup > 0 ? skill.warmup.group : empty_text
        text = sprintf(YEA::SKILL_RESTRICT::WARMUP_SUFFIX, value)
        draw_text(rect, text, 2)
        reset_font_settings
      end
      
      #--------------------------------------------------------------------------
      # draw_skill_cooldown
      #--------------------------------------------------------------------------
      def draw_skill_cooldown(skill, rect)
        return unless YEA::LEARN_SKILL::DRAW_COOLDOWN
        enabled = enable?(skill)
        enabled = false if skill.cooldown <= 0
        change_color(cooldown_colour, enabled)
        icon = Icon.cooldown
        if icon > 0
          draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
          rect.width -= 24
        end
        contents.font.size = YEA::SKILL_RESTRICT::COOLDOWN_SIZE
        value = skill.cooldown > 0 ? skill.cooldown.group : empty_text
        text = sprintf(YEA::SKILL_RESTRICT::COOLDOWN_SUFFIX, value)
        draw_text(rect, text, 2)
        reset_font_settings
      end
      
      #--------------------------------------------------------------------------
      # empty_text
      #--------------------------------------------------------------------------
      def empty_text
        return YEA::LEARN_SKILL::EMPTY_TEXT
      end
      
      #--------------------------------------------------------------------------
      # draw_learn_cost
      #--------------------------------------------------------------------------
      def draw_learn_cost(skill, index)
        rect = item_rect(index)
        rect.width -= 4
        if @actor.skill_learn?(skill)
          draw_learned_skill(rect)
        else
          draw_learn_skill_cost(skill, rect)
        end
        reset_font_settings
      end
      
      #--------------------------------------------------------------------------
      # draw_learned_skill
      #--------------------------------------------------------------------------
      def draw_learned_skill(rect)
        contents.font.size = YEA::LEARN_SKILL::LEARNED_SIZE
        change_color(normal_color)
        draw_text(rect, YEA::LEARN_SKILL::LEARNED_TEXT, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_learn_skill_cost
      #--------------------------------------------------------------------------
      def draw_learn_skill_cost(skill, rect)
        case skill.learn_cost[1]
        when :jp
          return unless $imported["YEA-JPManager"]
          draw_jp_cost(skill, rect)
        when :exp
          draw_exp_cost(skill, rect)
        when :gold
          draw_gold_cost(skill, rect)
        else; return
        end
      end
      
      #--------------------------------------------------------------------------
      # draw_jp_cost
      #--------------------------------------------------------------------------
      def draw_jp_cost(skill, rect)
        enabled = enabled_jp?(skill)
        if Icon.jp > 0
          draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
          rect.width -= 24
        end
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::jp, 2)
        rect.width -= text_size(Vocab::jp).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_exp_cost
      #--------------------------------------------------------------------------
      def draw_exp_cost(skill, rect)
        enabled = enabled_exp?(skill)
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
        rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_gold_cost
      #--------------------------------------------------------------------------
      def draw_gold_cost(skill, rect)
        enabled = enabled_jp?(skill)
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::currency_unit, 2)
        rect.width -= text_size(Vocab::currency_unit).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
        draw_text(rect, text, 2)
      end
      
    end # Window_LearnSkillList
    
    #==============================================================================
    # ■ Window_LearnSkillCostBack
    #==============================================================================
    
    class Window_LearnSkillCostBack < Window_Base
      
      #--------------------------------------------------------------------------
      # initialize
      #--------------------------------------------------------------------------
      def initialize(item_window)
        dw = Graphics.width * 3 / 4
        dx = (Graphics.width - dw) / 2
        super(dx, 0, dw, fitting_height(2))
        self.openness = 0
        self.back_opacity = 255
        @front_window = nil
        @item_window = item_window
        @skill = nil
      end
      
      #--------------------------------------------------------------------------
      # reveal
      #--------------------------------------------------------------------------
      def reveal(skill, skill_classes)
        @skill = skill
        return if @skill.nil?
        case @skill.learn_cost[1]
        when :gold
          self.height = fitting_height(3)
        else
          maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
          self.height = fitting_height(maximum + 2)
        end
        create_contents
        self.y = (Graphics.height - self.height) / 2
        refresh
        open
      end
      
      #--------------------------------------------------------------------------
      # refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        reset_font_settings
        draw_learn_skill_text
        rect = Rect.new(0, 0, contents.width - 4, line_height)
        draw_learn_skill_cost(@skill, rect)
      end
      
      #--------------------------------------------------------------------------
      # draw_learn_skill_text
      #--------------------------------------------------------------------------
      def draw_learn_skill_text
        name = sprintf("\eI[%d]%s", @skill.icon_index, @skill.name)
        fmt = YEA::LEARN_SKILL::LEARN_SKILL_TEXT
        text = sprintf(fmt, name)
        draw_text_ex(4, 0, text)
      end
      
      #--------------------------------------------------------------------------
      # draw_learn_skill_cost
      #--------------------------------------------------------------------------
      def draw_learn_skill_cost(skill, rect)
        case skill.learn_cost[1]
        when :jp
          return unless $imported["YEA-JPManager"]
          draw_jp_cost(skill, rect)
        when :exp
          draw_exp_cost(skill, rect)
        when :gold
          draw_gold_cost(skill, rect)
        else; return
        end
      end
      
      #--------------------------------------------------------------------------
      # draw_jp_cost
      #--------------------------------------------------------------------------
      def draw_jp_cost(skill, rect)
        enabled = true
        if Icon.jp > 0
          draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
          rect.width -= 24
        end
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::jp, 2)
        rect.width -= text_size(Vocab::jp).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_exp_cost
      #--------------------------------------------------------------------------
      def draw_exp_cost(skill, rect)
        enabled = true
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
        rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_gold_cost
      #--------------------------------------------------------------------------
      def draw_gold_cost(skill, rect)
        enabled = true
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::currency_unit, 2)
        rect.width -= text_size(Vocab::currency_unit).width
        cost = skill.learn_cost[0]
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
        draw_text(rect, text, 2)
      end
      
    end # Window_LearnSkillCostBack
    
    #==============================================================================
    # ■ Window_LearnSkillCostFront
    #==============================================================================
    
    class Window_LearnSkillCostFront < Window_Command
      
      #--------------------------------------------------------------------------
      # initialize
      #--------------------------------------------------------------------------
      def initialize(item_window, cost_window)
        super((Graphics.width - window_width) / 2, 0)
        self.openness = 0
        self.opacity = 0
        @item_window = item_window
        @cost_window = cost_window
        @skill = nil
        @actor = nil
        deactivate
      end
      
      #--------------------------------------------------------------------------
      # window_width
      #--------------------------------------------------------------------------
      def window_width; return Graphics.width * 3 / 4; end
      
      #--------------------------------------------------------------------------
      # skill_class
      #--------------------------------------------------------------------------
      def skill_class
        return @skill_classes.nil? ? nil : @skill_classes[index]
      end
      
      #--------------------------------------------------------------------------
      # reveal
      #--------------------------------------------------------------------------
      def reveal(skill, skill_classes, actor)
        @skill = skill
        @skill_classes = skill_classes.clone
        @actor = actor
        return if @skill.nil?
        case @skill.learn_cost[1]
        when :gold
          self.height = fitting_height(2)
        else
          maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
          self.height = fitting_height(maximum + 1)
        end
        create_contents
        self.y = @cost_window.y + line_height
        refresh
        select(0)
        open
        activate
      end
      
      #--------------------------------------------------------------------------
      # make_command_list
      #--------------------------------------------------------------------------
      def make_command_list
        return if @skill_classes.nil?
        if @skill.learn_cost[1] == :gold
          add_command("GOLD", :gold, true)
          add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
          return
        end
        for class_id in @skill_classes
          name = $data_classes[class_id].name
          add_command(name, :class, enabled?(class_id), class_id)
        end
        add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
      end
      
      #--------------------------------------------------------------------------
      # enabled?
      #--------------------------------------------------------------------------
      def enabled?(class_id)
        cost = @skill.learn_cost[0]
        case @skill.learn_cost[1]
        when :jp
          return @actor.jp(class_id) >= cost
        when :exp
          return @actor.exp_class(class_id) >= cost
        end
        return true
      end
      
      #--------------------------------------------------------------------------
      # draw_item
      #--------------------------------------------------------------------------
      def draw_item(index)
        reset_font_settings
        rect = item_rect(index)
        rect.x += 24
        rect.width -= 28
        return draw_cancel_text(index, rect) if @list[index][:symbol] == :cancel
        draw_class_name(index, rect) if @skill.learn_cost[1] != :gold
        draw_party_gold(rect) if @skill.learn_cost[1] == :gold
        draw_learn_skill_cost(@skill, rect, index)
      end
      
      #--------------------------------------------------------------------------
      # draw_cancel_text
      #--------------------------------------------------------------------------
      def draw_cancel_text(index, rect)
        draw_icon(Icon.cancel, rect.x, rect.y)
        text = command_name(index)
        draw_text(rect.x+24, rect.y, rect.width-24, line_height, text)
      end
      
      #--------------------------------------------------------------------------
      # draw_class_name
      #--------------------------------------------------------------------------
      def draw_class_name(index, rect)
        class_id = @list[index][:ext]
        return if $data_classes[class_id].nil?
        enabled = enabled?(class_id)
        if $imported["YEA-ClassSystem"]
          draw_icon($data_classes[class_id].icon_index, rect.x, rect.y, enabled)
        end
        rect.x += 24
        rect.width -= 24
        change_color(normal_color, enabled)
        draw_text(rect, $data_classes[class_id].name)
      end
      
      #--------------------------------------------------------------------------
      # draw_class_name
      #--------------------------------------------------------------------------
      def draw_party_gold(rect)
        enabled = true
        draw_icon(Icon.learn_skill_gold, rect.x, rect.y)
        rect.x += 24
        rect.width -= 24
        change_color(normal_color, enabled)
        draw_text(rect, YEA::LEARN_SKILL::GOLD_TEXT)
      end
      
      #--------------------------------------------------------------------------
      # draw_learn_skill_cost
      #--------------------------------------------------------------------------
      def draw_learn_skill_cost(skill, rect, index)
        case skill.learn_cost[1]
        when :jp
          return unless $imported["YEA-JPManager"]
          draw_jp_cost(skill, rect, index)
        when :exp
          draw_exp_cost(skill, rect, index)
        when :gold
          draw_gold_cost(skill, rect)
        else; return
        end
      end
      
      #--------------------------------------------------------------------------
      # draw_jp_cost
      #--------------------------------------------------------------------------
      def draw_jp_cost(skill, rect, index)
        enabled = enabled?(@list[index][:ext])
        if Icon.jp > 0
          draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
          rect.width -= 24
        end
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::jp, 2)
        rect.width -= text_size(Vocab::jp).width
        cost = @actor.jp(@list[index][:ext])
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_exp_cost
      #--------------------------------------------------------------------------
      def draw_exp_cost(skill, rect, index)
        enabled = enabled?(@list[index][:ext])
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
        rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
        cost = @actor.exp_class(@list[index][:ext])
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
        draw_text(rect, text, 2)
      end
      
      #--------------------------------------------------------------------------
      # draw_gold_cost
      #--------------------------------------------------------------------------
      def draw_gold_cost(skill, rect)
        enabled = $game_party.gold >= skill.learn_cost[0]
        contents.font.size = YEA::LEARN_SKILL::COST_SIZE
        change_color(system_color, enabled)
        draw_text(rect, Vocab::currency_unit, 2)
        rect.width -= text_size(Vocab::currency_unit).width
        cost = $game_party.gold
        text = cost.group
        change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
        draw_text(rect, text, 2)
      end
      
    end # Window_LearnSkillCostFront
    
    #==============================================================================
    # ■ Scene_Skill
    #==============================================================================
    
    class Scene_Skill < Scene_ItemBase
      
      #--------------------------------------------------------------------------
      # alias method: create_command_window
      #--------------------------------------------------------------------------
      alias scene_skill_create_command_window_lse create_command_window
      def create_command_window
        scene_skill_create_command_window_lse
        @command_window.set_handler(:learn_skill, method(:command_learn_skill))
      end
      
      #--------------------------------------------------------------------------
      # new method: command_learn_skill
      #--------------------------------------------------------------------------
      def command_learn_skill
        SceneManager.call(Scene_LearnSkill)
      end
      
    end # Scene_Skill
    
    #==============================================================================
    # ■ Scene_LearnSkill
    #==============================================================================
    
    class Scene_LearnSkill < Scene_Skill
      
      #--------------------------------------------------------------------------
      # start
      #--------------------------------------------------------------------------
      def start
        super
        create_cost_windows
      end
      
      #--------------------------------------------------------------------------
      # create_command_window
      #--------------------------------------------------------------------------
      def create_command_window
        wy = @help_window.height
        @command_window = Window_LearnSkillCommand.new(0, wy)
        @command_window.viewport = @viewport
        @command_window.help_window = @help_window
        @command_window.actor = @actor
        @command_window.set_handler(:skill,    method(:command_skill))
        @command_window.set_handler(:cancel,   method(:return_scene))
        @command_window.set_handler(:pagedown, method(:next_actor))
        @command_window.set_handler(:pageup,   method(:prev_actor))
      end
      
      #--------------------------------------------------------------------------
      # create_item_window
      #--------------------------------------------------------------------------
      def create_item_window
        wx = 0
        wy = @status_window.y + @status_window.height
        ww = Graphics.width
        wh = Graphics.height - wy
        @item_window = Window_LearnSkillList.new(wx, wy, ww, wh)
        @item_window.actor = @actor
        @item_window.viewport = @viewport
        @item_window.help_window = @help_window
        @item_window.set_handler(:ok,     method(:on_item_ok))
        @item_window.set_handler(:cancel, method(:on_item_cancel))
        @command_window.skill_window = @item_window
      end
      
      #--------------------------------------------------------------------------
      # create_cost_windows
      #--------------------------------------------------------------------------
      def create_cost_windows
        @cost_window = Window_LearnSkillCostBack.new(@item_window)
        @cost_front = Window_LearnSkillCostFront.new(@item_window, @cost_window)
        @cost_window.viewport = @viewport
        @cost_front.viewport = @viewport
        @cost_front.set_handler(:ok, method(:on_cost_ok))
        @cost_front.set_handler(:cancel, method(:on_cost_cancel))
      end
      
      #--------------------------------------------------------------------------
      # on_item_ok
      #--------------------------------------------------------------------------
      def on_item_ok
        skill = @item_window.item
        @cost_window.reveal(skill, @item_window.skill_classes(skill))
        @cost_front.reveal(skill, @item_window.skill_classes(skill), @actor)
      end
      
      #--------------------------------------------------------------------------
      # on_cost_ok
      #--------------------------------------------------------------------------
      def on_cost_ok
        Sound.play_use_skill
        skill = @item_window.item
        @actor.learn_skill(skill.id)
        cost = skill.learn_cost[0]
        case skill.learn_cost[1]
        when :jp
          @actor.lose_jp(cost, @cost_front.skill_class)
        when :exp
          @actor.lose_exp_class(cost, @cost_front.skill_class)
        when :gold
          $game_party.lose_gold(cost)
        end
        on_cost_cancel
        refresh_windows
      end
      
      #--------------------------------------------------------------------------
      # on_cost_cancel
      #--------------------------------------------------------------------------
      def on_cost_cancel
        @cost_front.close
        @cost_window.close
        @item_window.activate
      end
      
      #--------------------------------------------------------------------------
      # refresh_windows
      #--------------------------------------------------------------------------
      def refresh_windows
        @item_window.refresh
        @status_window.refresh
      end
      
    end # Scene_LearnSkill
    
    #==============================================================================
    # 
    # ▼ End of File
    # 
    #==============================================================================


    Как видишь , скриптер дотошная и в теле скрипта подробная справка по настройке.
    Последний раз редактировалось Alerent; 11.03.2013 в 09:01.

  3. #783
    Новичок Аватар для Таннари
    Информация о пользователе
    Регистрация
    15.09.2012
    Адрес
    Кемеровская обл.
    Сообщений
    8
    Репутация: 0 Добавить или отнять репутацию

    По умолчанию

    Блин всего одну строчку проглядел, очки надо начинать носить)); спасибо Alerent за пояснение!!!

  4. #784
    Пользователь Аватар для romero08
    Информация о пользователе
    Регистрация
    10.06.2011
    Адрес
    Самара
    Сообщений
    60
    Записей в дневнике
    2
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Kolhe Посмотреть сообщение
    Какую именно ТBS? Список всех используемых скриптов в студию.
    Используется скрипт Khas Awesome Light Effects и боевая система вот эта
    http://rpgvxa.3nx.ru/viewtopic.php?t=138

  5. #785
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    нужна демка этой боевки
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

  6. #786
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Seibur Посмотреть сообщение
    нужна демка этой боевки
    Как я понимаю, демки не было изначально. Только сам скрипт:

    Спойлер Fomar's Frontview Battle System:
    Код:
    =beginFront View Battle System
    by Fomar0153
    Version 1.0
    ----------------------
    Notes
    ----------------------
    Allows you to have front view battlers for the party.
    ----------------------
    Instructions
    ----------------------
    By default an actor's battler will be the same as his name.
    You can use notetags to set an alternate default:
    <battler_name Ralph2>
    Also during the game if you need to change a battler then call:
    $game_actors[x].battler_name = "New Name"
    
    
    You can also edit the icons and descriptions used by the actor command window
    to do this edit the values in the Module FrontView at the top of the scripts.
    ----------------------
    Known bugs
    ----------------------
    None
    =end
    
    
    module ReStaff
      
      module FrontView
        
        # Edit the icons that display for commands here
        ACTOR_COMMAND_ICONS = {}
        ACTOR_COMMAND_ICONS['Attack'] = 147
        ACTOR_COMMAND_ICONS['Guard'] = 160
        ACTOR_COMMAND_ICONS['Items'] = 192
        ACTOR_COMMAND_ICONS['Special'] = 143
        ACTOR_COMMAND_ICONS['Magic'] = 112
        
        # Edit the descriptions that display for commands here
        ACTOR_COMMAND_DESC = {}
        ACTOR_COMMAND_DESC['Attack'] = "Attack your foes using your weapon."
        ACTOR_COMMAND_DESC['Guard'] = "Defend against attacks from your foes."
        ACTOR_COMMAND_DESC['Items'] = "Use items you have collected on your journey."
        ACTOR_COMMAND_DESC['Special'] = "Unleash your special attacks. Uses TP."
        ACTOR_COMMAND_DESC['Magic'] = "Unleach your magical abilities. Uses MP."
        
        def self.get_icon(command)
          if ACTOR_COMMAND_ICONS[command].nil?
            return 0
          else
            return ACTOR_COMMAND_ICONS[command]
          end
        end
        
        def self.get_desc(command)
          if ACTOR_COMMAND_DESC[command].nil?
            return command
          else
            return ACTOR_COMMAND_DESC[command]
          end
        end
        
      end
    end
    
    
    class Game_Actor < Game_Battler
      #--------------------------------------------------------------------------
      # * New attr_accessor battler_name
      #--------------------------------------------------------------------------
      attr_accessor:battler_name
      #--------------------------------------------------------------------------
      # * Aliases Setup
      #--------------------------------------------------------------------------
      alias restaff_frontview_setup setup
      def setup(actor_id)
        restaff_frontview_setup(actor_id)
        @battler_name = actor.battler_name
      end
      #--------------------------------------------------------------------------
      # * Rewrites use_sprite?
      #--------------------------------------------------------------------------
      def use_sprite?
        return true
      end
      #--------------------------------------------------------------------------
      # * New Method screen_x
      #--------------------------------------------------------------------------
      def screen_x
        return (index+1) * (Graphics.width/($game_party.battle_members.size+1))
      end
      #--------------------------------------------------------------------------
      # * New Method screen_y
      #--------------------------------------------------------------------------
      def screen_y
        return Graphics.height
      end
      #--------------------------------------------------------------------------
      # * New Method screen_z
      #--------------------------------------------------------------------------
      def screen_z
        return 100
      end
    end
    
    
    class Spriteset_Battle
      #--------------------------------------------------------------------------
      # * Rewrites create_actors
      #--------------------------------------------------------------------------
      def create_actors
        @actor_sprites = $game_party.battle_members.reverse.collect do |actor|
          Sprite_Battler.new(@viewport1, actor)
        end
      end
    end
    
    
    class RPG::Actor < RPG::BaseItem
      def battler_name
        if @battler_name.nil?
          if @note =~ /<battler_name (.*)>/i
            @battler_name = $1
          else
            @battler_name = @name
          end
        end
        @battler_name
      end
    end
    
    
    
    
    class Window_PartyCommand < Window_Command
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
    end
    
    
    class Window_ActorHorzCommand < Window_HorzCommand
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0)
        self.openness = 0
        deactivate
        @actor = nil
        @last_index = -1
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 128
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        return unless @actor
        add_attack_command
        add_skill_commands
        add_guard_command
        add_item_command
      end
      #--------------------------------------------------------------------------
      # * Add Attack Command to List
      #--------------------------------------------------------------------------
      def add_attack_command
        add_command(Vocab::attack, :attack, @actor.attack_usable?)
      end
      #--------------------------------------------------------------------------
      # * Add Skill Command to List
      #--------------------------------------------------------------------------
      def add_skill_commands
        @actor.added_skill_types.sort.each do |stype_id|
          name = $data_system.skill_types[stype_id]
          add_command(name, :skill, true, stype_id)
        end
      end
      #--------------------------------------------------------------------------
      # * Add Guard Command to List
      #--------------------------------------------------------------------------
      def add_guard_command
        add_command(Vocab::guard, :guard, @actor.guard_usable?)
      end
      #--------------------------------------------------------------------------
      # * Add Item Command to List
      #--------------------------------------------------------------------------
      def add_item_command
        add_command(Vocab::item, :item)
      end
      #--------------------------------------------------------------------------
      # * Setup
      #--------------------------------------------------------------------------
      def setup(actor)
        @actor = actor
        clear_command_list
        make_command_list
        refresh
        select(0)
        activate
        open
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Calculate Height of Window Contents
      #--------------------------------------------------------------------------
      def contents_height
        item_height * 2
      end
      #--------------------------------------------------------------------------
      # * Get Number of Columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Get the space inbetween the columns
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Icons commands
      #--------------------------------------------------------------------------
      def draw_item(index)
        rect = item_rect(index)
        draw_icon(ReStaff::FrontView.get_icon(command_name(index)), rect.x, rect.y)
      end
      #--------------------------------------------------------------------------
      # * Update Help Text
      #--------------------------------------------------------------------------
      def update_help
        @help_window.set_text(ReStaff::FrontView.get_desc(command_name(index)))
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_text(ox,line_height, 104, line_height, command_name(index), 1)
      end
      #--------------------------------------------------------------------------
      # * Update
      #--------------------------------------------------------------------------
      def update
        super
        if @last_index != @index
          refresh
          @last_index = @index
        end
      end
    end
    
    
    class Window_BattleStatus < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias restaff_frontview_initialize initialize
      def initialize
        restaff_frontview_initialize
        contents.font.size = 16
      end
      #--------------------------------------------------------------------------
      # * Spacing Between Actors
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Sets the maximum columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Set the item height
      #--------------------------------------------------------------------------
      def item_height
        line_height * 2
      end
      #--------------------------------------------------------------------------
      # * Draw HP
      #--------------------------------------------------------------------------
      def draw_actor_hp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::hp_a)
        draw_current_and_max_values(x, y + 8, width, actor.hp, actor.mhp,
          hp_color(actor), normal_color)
      end
      #--------------------------------------------------------------------------
      # * Draw MP
      #--------------------------------------------------------------------------
      def draw_actor_mp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::mp_a)
        draw_current_and_max_values(x, y + 8, width, actor.mp, actor.mmp,
          mp_color(actor), normal_color)
      end
      #--------------------------------------------------------------------------
      # * Draw TP
      #--------------------------------------------------------------------------
      def draw_actor_tp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::tp_a)
        change_color(tp_color(actor))
        draw_text(x + width - 42, y + 8, 42, line_height, actor.tp.to_i, 2)
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Get Gauge Area Rectangle
      #--------------------------------------------------------------------------
      def gauge_area_rect(index)
        rect = item_rect_for_text(index)
        rect.x += 2
        rect.width -= 4
        rect
      end
      #--------------------------------------------------------------------------
      # * Draw Basic Area
      #--------------------------------------------------------------------------
      def draw_basic_area(rect, actor)
        draw_actor_name(actor, rect.x, rect.y - 4, 66)
        draw_actor_icons(actor, rect.x + 66, rect.y, 24)
      end
      #--------------------------------------------------------------------------
      # * Draw Gauge Area (with TP)
      #--------------------------------------------------------------------------
      def draw_gauge_area_with_tp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y + 12, rect.width)
        draw_actor_mp(actor, rect.x + 0, rect.y + line_height, rect.width/2)
        draw_actor_tp(actor, rect.x + rect.width/2, rect.y + line_height, rect.width/2)
      end
      #--------------------------------------------------------------------------
      # * Draw Gauge Area (without TP)
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y + 12, rect.width)
        draw_actor_mp(actor, rect.x + 0,  rect.y + line_height, rect.width)
      end
    end
    
    
    class Window_BattleEnemy < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization *
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(info_viewport)
        super(0, info_viewport.rect.y, window_width, fitting_height(2)) # just this line that was edited
        refresh
        self.visible = false
        @info_viewport = info_viewport
      end
    end
    
    
    class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # * Create Actor Commands Window
      #--------------------------------------------------------------------------
      def create_actor_command_window
        @actor_command_window = Window_ActorHorzCommand.new
        @actor_command_window.viewport = @info_viewport
        @actor_command_window.set_handler(:attack, method(:command_attack))
        @actor_command_window.set_handler(:skill,  method(:command_skill))
        @actor_command_window.set_handler(:guard,  method(:command_guard))
        @actor_command_window.set_handler(:item,   method(:command_item))
        @actor_command_window.set_handler(:cancel, method(:prior_command))
        @actor_command_window.x = Graphics.width
      end
      #--------------------------------------------------------------------------
      # * Start Party Command Selection
      #--------------------------------------------------------------------------
      alias restaff_frontview_start_party_command_selection start_party_command_selection
      def start_party_command_selection
        @help_window.hide
        restaff_frontview_start_party_command_selection
      end
      #--------------------------------------------------------------------------
      # * Start Actor Command Selection
      #--------------------------------------------------------------------------
      alias restaff_frontview_start_actor_command_selection start_actor_command_selection
      def start_actor_command_selection
        @actor_command_window.help_window = @help_window unless @actor_command_window.help_window 
        @help_window.show
        restaff_frontview_start_actor_command_selection
      end
      #--------------------------------------------------------------------------
      # * [Attack] Command
      #--------------------------------------------------------------------------
      alias restaff_frontview_command_attack command_attack
      def command_attack
        @help_window.hide
        restaff_frontview_command_attack
      end
      #--------------------------------------------------------------------------
      # * [Guard] Command
      #--------------------------------------------------------------------------
      alias restaff_frontview_command_guard command_guard
      def command_guard
        @help_window.hide
        restaff_frontview_command_guard
      end
      #--------------------------------------------------------------------------
      # * Enemy [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_enemy_cancel on_enemy_cancel
      def on_enemy_cancel
        restaff_frontview_on_enemy_cancel
        if @actor_command_window.current_symbol == :attack
          @help_window.show
        end
      end
      #--------------------------------------------------------------------------
      # * Skill [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_skill_cancel on_skill_cancel
      def on_skill_cancel
        restaff_frontview_on_skill_cancel
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Item [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_item_cancel on_item_cancel
      def on_item_cancel
        restaff_frontview_on_item_cancel
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Create Skill Window
      #--------------------------------------------------------------------------
      def create_skill_window
        @skill_window = Window_HorzSkillList.new(@help_window, @info_viewport)
        @skill_window.set_handler(:ok,     method(:on_skill_ok))
        @skill_window.set_handler(:cancel, method(:on_skill_cancel))
        @skill_window.x = Graphics.width - @skill_window.width
        @skill_window.y = Graphics.height - @skill_window.height
      end
      #--------------------------------------------------------------------------
      # * Create Item Window
      #--------------------------------------------------------------------------
      def create_item_window
        @item_window = Window_HorzItemList.new(@help_window, @info_viewport)
        @item_window.set_handler(:ok,     method(:on_item_ok))
        @item_window.set_handler(:cancel, method(:on_item_cancel))
        @item_window.x = Graphics.width - @item_window.width
        @item_window.y = Graphics.height - @item_window.height
      end
    end
    
    
    class Window_HorzList < Window_HorzCommand
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x,y)
        super(x, y)
        deactivate
        @last_index = -1
        self.back_opacity = 255
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 128
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Calculate Height of Window Contents
      #--------------------------------------------------------------------------
      def contents_height
        item_height * 2
      end
      #--------------------------------------------------------------------------
      # * Get Number of Columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Get the space inbetween the columns
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Icons commands
      #--------------------------------------------------------------------------
      def draw_item(index)
        return if @list[index].nil?
        rect = item_rect(index)
        draw_icon(@list[index].icon_index, rect.x, rect.y)
      end
      #--------------------------------------------------------------------------
      # * Update Help Text
      #--------------------------------------------------------------------------
      def update_help
        return if @list[index].nil?
        @help_window.set_text(@list[index].description)
      end
      #--------------------------------------------------------------------------
      # * Update
      #--------------------------------------------------------------------------
      def update
        super
        if @last_index != @index
          refresh
          @last_index = @index
        end
      end
      #--------------------------------------------------------------------------
      # * Get Command Data of Selection Item
      #--------------------------------------------------------------------------
      def current_data
        nil
      end
      #--------------------------------------------------------------------------
      # * Show Window
      #--------------------------------------------------------------------------
      def show
        select(0)
        @help_window.show
        super
      end
      #--------------------------------------------------------------------------
      # * Hide Window
      #--------------------------------------------------------------------------
      def hide
        @help_window.hide
        super
      end
      #--------------------------------------------------------------------------
      # * Set Leading Digits - BUGFIX
      #--------------------------------------------------------------------------
      def top_col=(col)
        col = 0 if col < 0
        col = item_max - (col_max - 1) if col > item_max - 1
        self.ox = col * (item_width + spacing)
      end
    end
    
    
    class Window_HorzItemList < Window_HorzList
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(help_window, info_viewport)
        super(0,100)
        self.visible = false
        @help_window = help_window
        @info_viewport = info_viewport
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        @list = $game_party.all_items.select {|item| include?(item) }
        @list.push(nil) if include?(nil)
      end
      #--------------------------------------------------------------------------
      # * Include in Item List?
      #--------------------------------------------------------------------------
      def include?(item)
        $game_party.usable?(item)
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def current_item_enabled?
        enable?(@list[index])
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def item
        return @list[index]
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_text(ox,line_height, 104, line_height, @list[index].name, 0)
        draw_text(ox,line_height, 104, line_height, sprintf(":%2d", $game_party.item_number(@list[index])), 2)
      end
      #--------------------------------------------------------------------------
      # * Display in Enabled State?
      #--------------------------------------------------------------------------
      def enable?(item)
        $game_party.usable?(item)
      end
    end
    
    
    class Window_HorzSkillList < Window_HorzList
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(help_window, info_viewport)
        super(0,100)
        self.visible = false
        @help_window = help_window
        @info_viewport = info_viewport
        @actor = nil
        @stype_id = 0
      end
      #--------------------------------------------------------------------------
      # * Set Actor
      #--------------------------------------------------------------------------
      def actor=(actor)
        return if @actor == actor
        @actor = actor
        refresh
        self.ox = 0
      end
      #--------------------------------------------------------------------------
      # * Set Skill Type ID
      #--------------------------------------------------------------------------
      def stype_id=(stype_id)
        return if @stype_id == stype_id
        @stype_id = stype_id
        refresh
        self.ox = 0
      end
      #--------------------------------------------------------------------------
      # * Get Skill
      #--------------------------------------------------------------------------
      def item
        @list && index >= 0 ? @list[index] : nil
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        @list = @actor ? @actor.skills.select {|skill| include?(skill) } : []
      end
      #--------------------------------------------------------------------------
      # * Include in Skill List? 
      #--------------------------------------------------------------------------
      def include?(item)
        item && item.stype_id == @stype_id
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def current_item_enabled?
        enable?(@list[index])
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def item
        return @list[index]
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_item_name(@list[index], ox, line_height, enable?(@list[index]))
        if @actor.skill_tp_cost(@list[index]) > 0
          change_color(tp_cost_color, enable?(@list[index]))
          draw_text(ox,line_height, 104, line_height, @actor.skill_tp_cost(@list[index]), 2)
        elsif @actor.skill_mp_cost(@list[index]) > 0
          change_color(mp_cost_color, enable?(@list[index]))
          draw_text(ox,line_height, 104, line_height, @actor.skill_mp_cost(@list[index]), 2)
        end
      end
      #--------------------------------------------------------------------------
      # * Display Skill in Active State?
      #--------------------------------------------------------------------------
      def enable?(item)
        @actor && @actor.usable?(item)
      end
    end


    К таким мелким скриптам делать демки это уж совсем стыд.

  7. #787
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от mephis Посмотреть сообщение
    Как я понимаю, демки не было изначально. Только сам скрипт:

    Спойлер Fomar's Frontview Battle System:
    Код:
    =beginFront View Battle System
    by Fomar0153
    Version 1.0
    ----------------------
    Notes
    ----------------------
    Allows you to have front view battlers for the party.
    ----------------------
    Instructions
    ----------------------
    By default an actor's battler will be the same as his name.
    You can use notetags to set an alternate default:
    <battler_name Ralph2>
    Also during the game if you need to change a battler then call:
    $game_actors[x].battler_name = "New Name"
    
    
    You can also edit the icons and descriptions used by the actor command window
    to do this edit the values in the Module FrontView at the top of the scripts.
    ----------------------
    Known bugs
    ----------------------
    None
    =end
    
    
    module ReStaff
      
      module FrontView
        
        # Edit the icons that display for commands here
        ACTOR_COMMAND_ICONS = {}
        ACTOR_COMMAND_ICONS['Attack'] = 147
        ACTOR_COMMAND_ICONS['Guard'] = 160
        ACTOR_COMMAND_ICONS['Items'] = 192
        ACTOR_COMMAND_ICONS['Special'] = 143
        ACTOR_COMMAND_ICONS['Magic'] = 112
        
        # Edit the descriptions that display for commands here
        ACTOR_COMMAND_DESC = {}
        ACTOR_COMMAND_DESC['Attack'] = "Attack your foes using your weapon."
        ACTOR_COMMAND_DESC['Guard'] = "Defend against attacks from your foes."
        ACTOR_COMMAND_DESC['Items'] = "Use items you have collected on your journey."
        ACTOR_COMMAND_DESC['Special'] = "Unleash your special attacks. Uses TP."
        ACTOR_COMMAND_DESC['Magic'] = "Unleach your magical abilities. Uses MP."
        
        def self.get_icon(command)
          if ACTOR_COMMAND_ICONS[command].nil?
            return 0
          else
            return ACTOR_COMMAND_ICONS[command]
          end
        end
        
        def self.get_desc(command)
          if ACTOR_COMMAND_DESC[command].nil?
            return command
          else
            return ACTOR_COMMAND_DESC[command]
          end
        end
        
      end
    end
    
    
    class Game_Actor < Game_Battler
      #--------------------------------------------------------------------------
      # * New attr_accessor battler_name
      #--------------------------------------------------------------------------
      attr_accessor:battler_name
      #--------------------------------------------------------------------------
      # * Aliases Setup
      #--------------------------------------------------------------------------
      alias restaff_frontview_setup setup
      def setup(actor_id)
        restaff_frontview_setup(actor_id)
        @battler_name = actor.battler_name
      end
      #--------------------------------------------------------------------------
      # * Rewrites use_sprite?
      #--------------------------------------------------------------------------
      def use_sprite?
        return true
      end
      #--------------------------------------------------------------------------
      # * New Method screen_x
      #--------------------------------------------------------------------------
      def screen_x
        return (index+1) * (Graphics.width/($game_party.battle_members.size+1))
      end
      #--------------------------------------------------------------------------
      # * New Method screen_y
      #--------------------------------------------------------------------------
      def screen_y
        return Graphics.height
      end
      #--------------------------------------------------------------------------
      # * New Method screen_z
      #--------------------------------------------------------------------------
      def screen_z
        return 100
      end
    end
    
    
    class Spriteset_Battle
      #--------------------------------------------------------------------------
      # * Rewrites create_actors
      #--------------------------------------------------------------------------
      def create_actors
        @actor_sprites = $game_party.battle_members.reverse.collect do |actor|
          Sprite_Battler.new(@viewport1, actor)
        end
      end
    end
    
    
    class RPG::Actor < RPG::BaseItem
      def battler_name
        if @battler_name.nil?
          if @note =~ /<battler_name (.*)>/i
            @battler_name = $1
          else
            @battler_name = @name
          end
        end
        @battler_name
      end
    end
    
    
    
    
    class Window_PartyCommand < Window_Command
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
    end
    
    
    class Window_ActorHorzCommand < Window_HorzCommand
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0)
        self.openness = 0
        deactivate
        @actor = nil
        @last_index = -1
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 128
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        return unless @actor
        add_attack_command
        add_skill_commands
        add_guard_command
        add_item_command
      end
      #--------------------------------------------------------------------------
      # * Add Attack Command to List
      #--------------------------------------------------------------------------
      def add_attack_command
        add_command(Vocab::attack, :attack, @actor.attack_usable?)
      end
      #--------------------------------------------------------------------------
      # * Add Skill Command to List
      #--------------------------------------------------------------------------
      def add_skill_commands
        @actor.added_skill_types.sort.each do |stype_id|
          name = $data_system.skill_types[stype_id]
          add_command(name, :skill, true, stype_id)
        end
      end
      #--------------------------------------------------------------------------
      # * Add Guard Command to List
      #--------------------------------------------------------------------------
      def add_guard_command
        add_command(Vocab::guard, :guard, @actor.guard_usable?)
      end
      #--------------------------------------------------------------------------
      # * Add Item Command to List
      #--------------------------------------------------------------------------
      def add_item_command
        add_command(Vocab::item, :item)
      end
      #--------------------------------------------------------------------------
      # * Setup
      #--------------------------------------------------------------------------
      def setup(actor)
        @actor = actor
        clear_command_list
        make_command_list
        refresh
        select(0)
        activate
        open
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Calculate Height of Window Contents
      #--------------------------------------------------------------------------
      def contents_height
        item_height * 2
      end
      #--------------------------------------------------------------------------
      # * Get Number of Columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Get the space inbetween the columns
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Icons commands
      #--------------------------------------------------------------------------
      def draw_item(index)
        rect = item_rect(index)
        draw_icon(ReStaff::FrontView.get_icon(command_name(index)), rect.x, rect.y)
      end
      #--------------------------------------------------------------------------
      # * Update Help Text
      #--------------------------------------------------------------------------
      def update_help
        @help_window.set_text(ReStaff::FrontView.get_desc(command_name(index)))
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_text(ox,line_height, 104, line_height, command_name(index), 1)
      end
      #--------------------------------------------------------------------------
      # * Update
      #--------------------------------------------------------------------------
      def update
        super
        if @last_index != @index
          refresh
          @last_index = @index
        end
      end
    end
    
    
    class Window_BattleStatus < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias restaff_frontview_initialize initialize
      def initialize
        restaff_frontview_initialize
        contents.font.size = 16
      end
      #--------------------------------------------------------------------------
      # * Spacing Between Actors
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Sets the maximum columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Set the item height
      #--------------------------------------------------------------------------
      def item_height
        line_height * 2
      end
      #--------------------------------------------------------------------------
      # * Draw HP
      #--------------------------------------------------------------------------
      def draw_actor_hp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::hp_a)
        draw_current_and_max_values(x, y + 8, width, actor.hp, actor.mhp,
          hp_color(actor), normal_color)
      end
      #--------------------------------------------------------------------------
      # * Draw MP
      #--------------------------------------------------------------------------
      def draw_actor_mp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::mp_a)
        draw_current_and_max_values(x, y + 8, width, actor.mp, actor.mmp,
          mp_color(actor), normal_color)
      end
      #--------------------------------------------------------------------------
      # * Draw TP
      #--------------------------------------------------------------------------
      def draw_actor_tp(actor, x, y, width = 124)
        draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
        change_color(system_color)
        draw_text(x, y+8, 30, line_height, Vocab::tp_a)
        change_color(tp_color(actor))
        draw_text(x + width - 42, y + 8, 42, line_height, actor.tp.to_i, 2)
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Get Gauge Area Rectangle
      #--------------------------------------------------------------------------
      def gauge_area_rect(index)
        rect = item_rect_for_text(index)
        rect.x += 2
        rect.width -= 4
        rect
      end
      #--------------------------------------------------------------------------
      # * Draw Basic Area
      #--------------------------------------------------------------------------
      def draw_basic_area(rect, actor)
        draw_actor_name(actor, rect.x, rect.y - 4, 66)
        draw_actor_icons(actor, rect.x + 66, rect.y, 24)
      end
      #--------------------------------------------------------------------------
      # * Draw Gauge Area (with TP)
      #--------------------------------------------------------------------------
      def draw_gauge_area_with_tp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y + 12, rect.width)
        draw_actor_mp(actor, rect.x + 0, rect.y + line_height, rect.width/2)
        draw_actor_tp(actor, rect.x + rect.width/2, rect.y + line_height, rect.width/2)
      end
      #--------------------------------------------------------------------------
      # * Draw Gauge Area (without TP)
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y + 12, rect.width)
        draw_actor_mp(actor, rect.x + 0,  rect.y + line_height, rect.width)
      end
    end
    
    
    class Window_BattleEnemy < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization *
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(info_viewport)
        super(0, info_viewport.rect.y, window_width, fitting_height(2)) # just this line that was edited
        refresh
        self.visible = false
        @info_viewport = info_viewport
      end
    end
    
    
    class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # * Create Actor Commands Window
      #--------------------------------------------------------------------------
      def create_actor_command_window
        @actor_command_window = Window_ActorHorzCommand.new
        @actor_command_window.viewport = @info_viewport
        @actor_command_window.set_handler(:attack, method(:command_attack))
        @actor_command_window.set_handler(:skill,  method(:command_skill))
        @actor_command_window.set_handler(:guard,  method(:command_guard))
        @actor_command_window.set_handler(:item,   method(:command_item))
        @actor_command_window.set_handler(:cancel, method(:prior_command))
        @actor_command_window.x = Graphics.width
      end
      #--------------------------------------------------------------------------
      # * Start Party Command Selection
      #--------------------------------------------------------------------------
      alias restaff_frontview_start_party_command_selection start_party_command_selection
      def start_party_command_selection
        @help_window.hide
        restaff_frontview_start_party_command_selection
      end
      #--------------------------------------------------------------------------
      # * Start Actor Command Selection
      #--------------------------------------------------------------------------
      alias restaff_frontview_start_actor_command_selection start_actor_command_selection
      def start_actor_command_selection
        @actor_command_window.help_window = @help_window unless @actor_command_window.help_window 
        @help_window.show
        restaff_frontview_start_actor_command_selection
      end
      #--------------------------------------------------------------------------
      # * [Attack] Command
      #--------------------------------------------------------------------------
      alias restaff_frontview_command_attack command_attack
      def command_attack
        @help_window.hide
        restaff_frontview_command_attack
      end
      #--------------------------------------------------------------------------
      # * [Guard] Command
      #--------------------------------------------------------------------------
      alias restaff_frontview_command_guard command_guard
      def command_guard
        @help_window.hide
        restaff_frontview_command_guard
      end
      #--------------------------------------------------------------------------
      # * Enemy [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_enemy_cancel on_enemy_cancel
      def on_enemy_cancel
        restaff_frontview_on_enemy_cancel
        if @actor_command_window.current_symbol == :attack
          @help_window.show
        end
      end
      #--------------------------------------------------------------------------
      # * Skill [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_skill_cancel on_skill_cancel
      def on_skill_cancel
        restaff_frontview_on_skill_cancel
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Item [Cancel]
      #--------------------------------------------------------------------------
      alias restaff_frontview_on_item_cancel on_item_cancel
      def on_item_cancel
        restaff_frontview_on_item_cancel
        @help_window.show
      end
      #--------------------------------------------------------------------------
      # * Create Skill Window
      #--------------------------------------------------------------------------
      def create_skill_window
        @skill_window = Window_HorzSkillList.new(@help_window, @info_viewport)
        @skill_window.set_handler(:ok,     method(:on_skill_ok))
        @skill_window.set_handler(:cancel, method(:on_skill_cancel))
        @skill_window.x = Graphics.width - @skill_window.width
        @skill_window.y = Graphics.height - @skill_window.height
      end
      #--------------------------------------------------------------------------
      # * Create Item Window
      #--------------------------------------------------------------------------
      def create_item_window
        @item_window = Window_HorzItemList.new(@help_window, @info_viewport)
        @item_window.set_handler(:ok,     method(:on_item_ok))
        @item_window.set_handler(:cancel, method(:on_item_cancel))
        @item_window.x = Graphics.width - @item_window.width
        @item_window.y = Graphics.height - @item_window.height
      end
    end
    
    
    class Window_HorzList < Window_HorzCommand
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x,y)
        super(x, y)
        deactivate
        @last_index = -1
        self.back_opacity = 255
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 128
      end
      #--------------------------------------------------------------------------
      # * Get Number of Lines to Show
      #--------------------------------------------------------------------------
      def visible_line_number
        return 2
      end
      #--------------------------------------------------------------------------
      # * Calculate Height of Window Contents
      #--------------------------------------------------------------------------
      def contents_height
        item_height * 2
      end
      #--------------------------------------------------------------------------
      # * Get Number of Columns
      #--------------------------------------------------------------------------
      def col_max
        return 4
      end
      #--------------------------------------------------------------------------
      # * Get the space inbetween the columns
      #--------------------------------------------------------------------------
      def spacing
        return 4
      end
      #--------------------------------------------------------------------------
      # * Icons commands
      #--------------------------------------------------------------------------
      def draw_item(index)
        return if @list[index].nil?
        rect = item_rect(index)
        draw_icon(@list[index].icon_index, rect.x, rect.y)
      end
      #--------------------------------------------------------------------------
      # * Update Help Text
      #--------------------------------------------------------------------------
      def update_help
        return if @list[index].nil?
        @help_window.set_text(@list[index].description)
      end
      #--------------------------------------------------------------------------
      # * Update
      #--------------------------------------------------------------------------
      def update
        super
        if @last_index != @index
          refresh
          @last_index = @index
        end
      end
      #--------------------------------------------------------------------------
      # * Get Command Data of Selection Item
      #--------------------------------------------------------------------------
      def current_data
        nil
      end
      #--------------------------------------------------------------------------
      # * Show Window
      #--------------------------------------------------------------------------
      def show
        select(0)
        @help_window.show
        super
      end
      #--------------------------------------------------------------------------
      # * Hide Window
      #--------------------------------------------------------------------------
      def hide
        @help_window.hide
        super
      end
      #--------------------------------------------------------------------------
      # * Set Leading Digits - BUGFIX
      #--------------------------------------------------------------------------
      def top_col=(col)
        col = 0 if col < 0
        col = item_max - (col_max - 1) if col > item_max - 1
        self.ox = col * (item_width + spacing)
      end
    end
    
    
    class Window_HorzItemList < Window_HorzList
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(help_window, info_viewport)
        super(0,100)
        self.visible = false
        @help_window = help_window
        @info_viewport = info_viewport
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        @list = $game_party.all_items.select {|item| include?(item) }
        @list.push(nil) if include?(nil)
      end
      #--------------------------------------------------------------------------
      # * Include in Item List?
      #--------------------------------------------------------------------------
      def include?(item)
        $game_party.usable?(item)
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def current_item_enabled?
        enable?(@list[index])
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def item
        return @list[index]
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_text(ox,line_height, 104, line_height, @list[index].name, 0)
        draw_text(ox,line_height, 104, line_height, sprintf(":%2d", $game_party.item_number(@list[index])), 2)
      end
      #--------------------------------------------------------------------------
      # * Display in Enabled State?
      #--------------------------------------------------------------------------
      def enable?(item)
        $game_party.usable?(item)
      end
    end
    
    
    class Window_HorzSkillList < Window_HorzList
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     info_viewport : Viewport for displaying information
      #--------------------------------------------------------------------------
      def initialize(help_window, info_viewport)
        super(0,100)
        self.visible = false
        @help_window = help_window
        @info_viewport = info_viewport
        @actor = nil
        @stype_id = 0
      end
      #--------------------------------------------------------------------------
      # * Set Actor
      #--------------------------------------------------------------------------
      def actor=(actor)
        return if @actor == actor
        @actor = actor
        refresh
        self.ox = 0
      end
      #--------------------------------------------------------------------------
      # * Set Skill Type ID
      #--------------------------------------------------------------------------
      def stype_id=(stype_id)
        return if @stype_id == stype_id
        @stype_id = stype_id
        refresh
        self.ox = 0
      end
      #--------------------------------------------------------------------------
      # * Get Skill
      #--------------------------------------------------------------------------
      def item
        @list && index >= 0 ? @list[index] : nil
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        @list = @actor ? @actor.skills.select {|skill| include?(skill) } : []
      end
      #--------------------------------------------------------------------------
      # * Include in Skill List? 
      #--------------------------------------------------------------------------
      def include?(item)
        item && item.stype_id == @stype_id
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def current_item_enabled?
        enable?(@list[index])
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Selection Item
      #--------------------------------------------------------------------------
      def item
        return @list[index]
      end
      #--------------------------------------------------------------------------
      # * Draw the current action
      #--------------------------------------------------------------------------
      def refresh
        super
        return unless @list[index]
        self.contents.font.size = 18
        draw_item_name(@list[index], ox, line_height, enable?(@list[index]))
        if @actor.skill_tp_cost(@list[index]) > 0
          change_color(tp_cost_color, enable?(@list[index]))
          draw_text(ox,line_height, 104, line_height, @actor.skill_tp_cost(@list[index]), 2)
        elsif @actor.skill_mp_cost(@list[index]) > 0
          change_color(mp_cost_color, enable?(@list[index]))
          draw_text(ox,line_height, 104, line_height, @actor.skill_mp_cost(@list[index]), 2)
        end
      end
      #--------------------------------------------------------------------------
      # * Display Skill in Active State?
      #--------------------------------------------------------------------------
      def enable?(item)
        @actor && @actor.usable?(item)
      end
    end


    К таким мелким скриптам делать демки это уж совсем стыд.
    Я просто скрипт не нашёл, только доп графику, огромное спасибо, что выложил (да, скрипт простой сам разберусь)

    И ещё один, на сей раз очень важный вопрос:
    1) Нужен скрипт который убирает ману из игры,
    2) Нужен скрипт который ставит определённое количество использований как в играх покемон.

    к примеру:
    Толчок 32/32

    Когда лимит исчерпан можно пойти в больничку и выличится.(И жизнь хилится и количество использований становится как было)

    з.ы. скрипт хоть и мелкий но не работает
    Последний раз редактировалось Seibur; 12.03.2013 в 12:01.
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

  8. #788

    По умолчанию

    Цитата Сообщение от Seibur Посмотреть сообщение
    Я просто скрипт не нашёл, только доп графику, огромное спасибо, что выложил (да, скрипт простой сам разберусь)

    2) Нужен скрипт который ставит определённое количество использований как в играх покемон.

    к примеру:
    Толчок 32/32

    Когда лимит исчерпан можно пойти в больничку и выличится.(И жизнь хилится и количество использований становится как было)

    з.ы. скрипт хоть и мелкий но не работает
    Попробуй его
    http://yanflychannel.wordpress.com/r...-restrictions/

    Неподскажите мне есть ли такой скрипт на VX ACE чтобы считал уровни персонажа. Желательно переменной. Или как то это можно сделать без скрипта? Я лично не нашел.

  9. #789
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Seibur
    Работает. Он просто криво скопировался на форум. В первой строчке после "=begin" нужно Enter нажать, чтобы остальная часть на следующую строку перенеслась. Иначе этот комментарий с инструкцией не воспримется.

    Shiva
    Неподскажите мне есть ли такой скрипт на VX ACE чтобы считал уровни персонажа. Желательно переменной. Или как то это можно сделать без скрипта? Я лично не нашел.
    Делается командой "Управление переменными" -> "Игровое". Там находится среди прочего.
    Последний раз редактировалось mephis; 12.03.2013 в 13:43.

  10. #790

    По умолчанию

    Скажите скрипт на миникарту для версии VX Ace

Страница 79 из 190 ПерваяПервая ... 2969777879808189129179 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Поиск скриптов