Хорошо! Хорошо!:  0
Плохо! Плохо!:  0
Показано с 1 по 9 из 9

Тема: Skill level System

  1. #1
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию Skill level System

    Автор: LEON
    Скрипт добавляет в игру возможность самому прокачивать склилы персонажа.
    С помощью данного скрипта конечно не возможно создать систему талантов из wow, но возможно сделать систему скилов, как в diablo II.
    Инструкция по установке: Замените скрипт: Scene_Menu, если у вас русская версия мейкера и конечно вставьте сам скрипт Skill_Level.
    Демо: http://rpg-maker.info/index.php?opti...ileinfo&id=159
    scene_menu
    PHP код:
    class Scene_Menu
      
    #--------------------------------------------------------------------------
      
    def initialize(menu_index 0)
        @
    menu_index menu_index
      end
      
    #--------------------------------------------------------------------------
      
    def main
        s1 
    $data_system.words.item
        s2 
    $data_system.words.skill
        s3 
    $data_system.words.equip
        s4 
    $str_status
        s5 
    $str_save
        s6 
    $str_endgame
        s7 
    "Прокачка"
        
    @command_window Window_Command.new(160, [s1s2s3s4s7s5s6])
        @
    command_window.index = @menu_index
        
    if $game_party.actors.size == 0
          
    @command_window.disable_item(0)
          @
    command_window.disable_item(1)
          @
    command_window.disable_item(2)
          @
    command_window.disable_item(3)
        
    end
        
    if $game_system.save_disabled
          
    @command_window.disable_item(4)
        
    end

        
    @gold_window Window_Gold.new
        @
    gold_window.0
        
    @gold_window.416
        
    @status_window Window_MenuStatus.new
        @
    status_window.160
        
    @status_window.0
        Graphics
    .transition
        loop 
    do
          
    Graphics.update
          Input
    .update
          update
          
    if $scene != self
            
    break
          
    end
        end
        Graphics
    .freeze
        
    @command_window.dispose

        
    @gold_window.dispose
        
    @status_window.dispose
      end
      
    #--------------------------------------------------------------------------
      
    def update
        
    @command_window.update

        
    @gold_window.update
        
    @status_window.update
        
    if @command_window.active
          update_command
          
    return
        
    end
        
    if @status_window.active
          update_status
          
    return
        
    end
      end
      
    #--------------------------------------------------------------------------
      
    def update_command
        
    if Input.trigger?(Input::B)
          
    $game_system.se_play($data_system.cancel_se)
          
    $scene Scene_Map.new
          return
        
    end
        
    if Input.trigger?(Input::C)
          if 
    $game_party.actors.size == and @command_window.index 4
            $game_system
    .se_play($data_system.buzzer_se)
            return
          
    end
          
    case @command_window.index
          when 0
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Item.new
          
    when 1
            $game_system
    .se_play($data_system.decision_se)
            @
    command_window.active false
            
    @status_window.active true
            
    @status_window.index 0
          when 2
            $game_system
    .se_play($data_system.decision_se)
            @
    command_window.active false
            
    @status_window.active true
            
    @status_window.index 0
          when 3
            $game_system
    .se_play($data_system.decision_se)
            @
    command_window.active false
            
    @status_window.active true
            
    @status_window.index 0
          when 4
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Skill_level.new
          
    when 5
            
    if $game_system.save_disabled
              $game_system
    .se_play($data_system.buzzer_se)
              return
            
    end
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Save.new
          
    when 6
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_End.new
          
    end
          
    return
        
    end
      end
      
    #--------------------------------------------------------------------------
      
    def update_status
        
    if Input.trigger?(Input::B)
          
    $game_system.se_play($data_system.cancel_se)
          @
    command_window.active true
          
    @status_window.active false
          
    @status_window.index = -1
          
    return
        
    end
        
    if Input.trigger?(Input::C)
          case @
    command_window.index
          when 1
            
    if $game_party.actors[@status_window.index].restriction >= 2
              $game_system
    .se_play($data_system.buzzer_se)
              return
            
    end
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Skill.new(@status_window.index)
          
    when 2
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Equip.new(@status_window.index)
          
    when 3
            $game_system
    .se_play($data_system.decision_se)
            
    $scene Scene_Status.new(@status_window.index)
          
    end
          
    return
        
    end
      end
    end 
    Skill_Level
    PHP код:


    module Skill_Level
      
    #--------------------------------------------------------------------
      #  Skill_Default_Beginning_Level
      #--------------------------------------------------------------------
      
    Beginning_Default 0
      
    #--------------------------------------------------------------------
      #  Skill default max level
      #--------------------------------------------------------------------
      
    Max_Default 20
      
    #--------------------------------------------------------------------
      #  Actor Level Requirements
      #  skill_id => actor.level
      #--------------------------------------------------------------------
      
    Level_Req = {
      
    => 2
      
    }
      
    #--------------------------------------------------------------------
      #  Skill Level Requirements
      #  skill_id =>  [required skill_id, required skill_level, skill name of required skill]
      #--------------------------------------------------------------------
      
    Skill_Req = {
      
    57 => [12"Heal"]
      }
      
    Skill_Req = {
      
    => [44"Heal"]
      }
      
    #--------------------------------------------------------------------
      #  Skill Infliction Status Additions
      #  skill_id => [skill_level, plus_state_set id]
      #--------------------------------------------------------------------
      
    Skill_Add = {
      
    57 => [23]
      }
      
    #--------------------------------------------------------------------
      #  Skill Cure Status Removals
      #  skill_id => [skill_level, minus_state_set id]
      #--------------------------------------------------------------------
      
    Skill_Minus = {
      
    => [22]
      }
      
    #--------------------------------------------------------------------
      #  Skill Element Addition
      #  skill_id => [skill_level, element_set]
      #--------------------------------------------------------------------
      
    Skill_Element = {
      
    => [24]
      }
      
    #--------------------------------------------------------------------
      #  Increase % per level
      #--------------------------------------------------------------------
      
    INCREASE_PER_LEVEL 25
      
    #--------------------------------------------------------------------
      #  Base_MaxHP skills
      #  skill_id => % hp added
      #--------------------------------------------------------------------
      
    Base_hp = {
      
    81 => 5,
      
    82 => 7
      
    }
      
    #--------------------------------------------------------------------
      #  Base_MaxSP skills
      #  skill_id => % sp added
      #--------------------------------------------------------------------
      
    Base_sp = {
      
    81 => 5
      
    }  
      
    #--------------------------------------------------------------------
      #  Base_Str skills
      #  skill_id => % str added
      #--------------------------------------------------------------------
      
    Base_str = {
      
    81 => 5
      
    }
      
    #--------------------------------------------------------------------
      #  Base_Dex skills
      #  skill_id => % dex added
      #--------------------------------------------------------------------
      
    Base_dex = {
      
    81 => 5
      
    }
      
    #--------------------------------------------------------------------
      #  Base_Int skills
      #  skill_id => % int added
      #--------------------------------------------------------------------
      
    Base_int = {
      
    81 => 5
      

      
    #--------------------------------------------------------------------
      #  Base_Agi skills
      #  skill_id => % agi added
      #--------------------------------------------------------------------
      
    Base_agi = {
      
    81 => 5
      
    }
      
    #--------------------------------------------------------------------
      #  Weapon proficiency crossover switch
      #--------------------------------------------------------------------
      
    Weapon_Cross true
      
    #--------------------------------------------------------------------
      #  Weapon Proficiencies
      #  set only if you use the weapon proficiency crossover.
      #--------------------------------------------------------------------
      
    Weapon_Skills = [828384858687888990]
    end

    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    #  Steal Module
    #//////////////////////////////////////////////////////////////////////
    module Steal_Script
      
    #--------------------------------------------------------------------
      #  Common_Item
      #  enemy.id => [item_id, item identifier, # to add]
      #  0 = item, 1 = weapon, 2 = armor
      #--------------------------------------------------------------------
      
    Common_Item = {
      
    => [312]
      }
      
    #--------------------------------------------------------------------
      #  Rare_Item
      #  enemy.id => [item_id, item identifier, # to add]
      #  0 = item, 1 = weapon, 2 = armor
      #--------------------------------------------------------------------
      
    Rare_Item = {
      
    => [302]
      }
      
    Failed_Message "Couldn't Steal"
      
    Nothing_To_Steal "Nothing to Steal"
      
    Steal_ID 20
      Gold_ID 
    21
    end

    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #  Game_Battler
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    class Game_Battler
      
    #--------------------------------------------------------------------
      #  Set's Percentage Increase
      #  Set each INCREASE_PER_LEVEL in the script to the same number
      #--------------------------------------------------------------------
      
    INCREASE_PER_LEVEL 25
      
    #--------------------------------------------------------------------
      #  Alias Listings
      #--------------------------------------------------------------------
      
    alias leon_gb_skilleffect skill_effect
      
    #--------------------------------------------------------------------
      #  Skill Effect
      #--------------------------------------------------------------------
      
    def skill_effect(userskill)
        
    ss Steal_Script
        reqs 
    Skill_Level
        self
    .critical false
        
    if ((skill.scope == or skill.scope == 4) and self.hp == 0) or
           ((
    skill.scope == or skill.scope == 6) and self.hp >= 1)
          return 
    false
        end
        effective 
    false
        effective 
    |= skill.common_event_id 0
        hit 
    skill.hit
        
    if skill.atk_f 0
          hit 
    *= user.hit 100
        end
        hit_result 
    = (rand(100) < hit)
        
    effective |= hit 100
        
    if hit_result == true
          
    if skill.element_set.include?(ss::Steal_ID)
            if 
    self.is_a?(Game_Enemy)
              
    steal = (rand(100) + user.skill_level[skill.id] * reqs::INCREASE_PER_LEVEL)
              if 
    ss::Rare_Item.keys.include?(self.id)
                if 
    steal 90
                  
    if ss::Rare_Item[self.id][1] == 0
                    $game_party
    .gain_item(ss::Rare_Item[self.id][0], ss::Rare_Item[self.id][2])
                    
    self.damage "Stole #{ss::Rare_Item[self.id][2].to_i} #{$data_items[ss::Rare_Item[self.id][0]].name}"
                    
    return
                  
    elsif ss::Rare_Item[self.id][1] == 1
                    $game_party
    .gain_weapon(ss::Rare_Item[self.id][0], ss::Rare_Item[self.id][2])
                    
    self.damage "Stole #{ss::Rare_Item[self.id][2].to_i} #{$data_weapons[ss::Rare_Item[self.id][0]].name}"
                    
    return
                  
    elsif ss::Rare_Item[self.id][1] == 2
                    $game_party
    .gain_armor(ss::Rare_Item[self.id][0], ss::Rare_Item[self.id][2])
                    
    self.damage "Stole #{ss::Rare_Item[self.id][2].to_i} #{$data_armors[ss::Rare_Item[self.id][0]].name}"
                    
    return
                  
    end
                end
              end
              
    if ss::Common_Item.keys.include?(self.id)
                if 
    ss::Rare_Item.keys.include?(self.id)
                  if 
    steal 50
                    
    if steal 90
                      
    if ss::Common_Item[self.id][1] == 0
                        $game_party
    .gain_item(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                        
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_items[ss::Common_Item[self.id][0]].name}"
                        
    return
                      
    elsif ss::Common_Item[self.id][1] == 1
                        $game_party
    .gain_weapon(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                        
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_weapons[ss::Common_Item[self.id][0]].name}"
                        
    return
                      
    elsif ss::Common_Item[self.id][1] == 2
                        $game_party
    .gain_armor(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                        
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_armors[ss::Common_Item[self.id][0]].name}"
                        
    return 
                      
    end
                    end
                  
    else
                    
    self.damage "#{ss::Failed_Message}"
                    
    return 
                  
    end
                
    else
                  if 
    steal 50
                    
    if ss::Common_Item[self.id][1] == 0
                      $game_party
    .gain_item(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                      
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_items[ss::Common_Item[self.id][0]].name}"
                      
    return
                    
    elsif ss::Common_Item[self.id][1] == 1
                      $game_party
    .gain_weapon(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                      
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_weapons[ss::Common_Item[self.id][0]].name}"
                      
    return
                    
    elsif ss::Common_Item[self.id][1] == 2
                      $game_party
    .gain_armor(ss::Common_Item[self.id][0], ss::Common_Item[self.id][2])
                      
    self.damage "Stole #{ss::Common_Item[self.id][2].to_i} #{$data_armors[ss::Common_Item[self.id][0]].name}"
                      
    return 
                    
    end
                  end
                end
              
    else
                
    self.damage "#{ss::Nothing_To_Steal}"
                
    return
              
    end
            end
          end
          
    if skill.element_set.include?(ss::Gold_ID)
            if 
    self.is_a?(Game_Enemy)
              
    gold_steal = (rand(100))
              if 
    gold_steal 45
                gold_total 
    0
                gold 
    self.gold
                gold1 
    gold
                gold_var 
    = (rand(gold1 2) * user.skill_level[skill.id])
                
    gold_pm = (rand(3))
                if 
    gold_pm 1
                  gold_total 
    gold gold_var
                  $game_party
    .gain_gold(gold_total)
                  
    self.damage "Stole #{gold_total} #{$data_system.words.gold}"
                  
    return
                else
                  
    gold_total gold gold_var
                  
    if gold_total 0
                    gold_total 
    0
                  end
                  $game_party
    .gain_gold(gold_total)
                  
    self.damage "Stole #{gold_total} #{$data_system.words.gold}"
                  
    return
                
    end
              
    else
                
    self.damage "#{ss::Failed_Message}"
                
    return
              
    end
            end
          end
          
    if user.is_a?(Game_Actor)
            
    power = (skill.power + (reqs::INCREASE_PER_LEVEL user.skill_level[skill.id] * 0.01 skill.power)) + user.atk skill.atk_f 100
          
    else
            
    power skill.power user.atk skill.atk_f 100
          end
          power 
    power.round
          
    if power 0
            power 
    -= self.pdef skill.pdef_f 200
            power 
    -= self.mdef skill.mdef_f 200
            power 
    = [power0].max
          end
          rate 
    20
          rate 
    += (user.str skill.str_f 100)
          
    rate += (user.dex skill.dex_f 100)
          
    rate += (user.agi skill.agi_f 100)
          
    rate += (user.int skill.int_f 100)
          
    self.damage power rate 20
          self
    .damage *= elements_correct(skill.element_set)
          
    self.damage /= 100
          
    if self.damage 0
            
    if self.guarding?
              
    self.damage /= 2
            end
          end
          
    if skill.variance and self.damage.abs 0
            amp 
    = [self.damage.abs skill.variance 1001].max
            self
    .damage += rand(amp+1) + rand(amp+1) - amp
          end
          eva 
    self.agi user.dex self.eva
          hit 
    self.damage 100 100 eva skill.eva_f 100
          hit 
    self.cant_evade? ? 100 hit
          hit_result 
    = (rand(100) < hit)
          
    effective |= hit 100
        end
        
    if hit_result == true
          
    if skill.power != and skill.atk_f 0
            remove_states_shock
            effective 
    true
          end
          last_hp 
    self.hp
          self
    .hp -= self.damage
          effective 
    |= self.hp != last_hp
          
    @state_changed false
          effective 
    |= states_plus(skill.plus_state_set)
          
    effective |= states_minus(skill.minus_state_set)
          if 
    skill.power == 0
            self
    .damage ""
            
    unless @state_changed
              self
    .damage "Промах"
            
    end
          end
        
    else
          
    self.damage "Промах"
        
    end
        unless $game_temp
    .in_battle
          self
    .damage nil
        end
        
    return effective
      end
    end



    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #  Game_Actor
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    class Game_Actor Game_Battler
      
    #--------------------------------------------------------------------
      #  Constant Variables
      #  Leon_Edit
      #  Set SKILL_POINTS equal to the number of skill points per level.
      #  Set SKILL_POINTS equal to 0 if none are to be earned.
      #--------------------------------------------------------------------
      
    SKILL_POINTS 
      
    #--------------------------------------------------------------------
      #  Attribute Listings
      #--------------------------------------------------------------------
      
    attr_accessor    :skill_level
      attr_accessor    
    :skill_max
      attr_accessor    
    :skill_points
      
    #--------------------------------------------------------------------
      #  Alias Listings
      #--------------------------------------------------------------------
      
    alias leon_ga_skill_level_setup setup
      alias leon_ga_skill_level_skill_learn
    skill_learn?
      
    alias leon_ga_skill_level_exp exp
      alias leon_ga_skill_level_basehp base_maxhp
      alias leon_ga_skill_level_basesp base_maxsp
      alias leon_ga_skill_level_basestr base_str
      alias leon_ga_skill_level_basedex base_dex
      alias leon_ga_skill_level_baseagi base_agi
      alias leon_ga_skill_level_baseint base_int
      
    #--------------------------------------------------------------------
      #  Setup
      #--------------------------------------------------------------------
      
    def setup(actor_id)
      
    #--------------------------------------------------------------------
      #  Leon_Edit
      #  Put in unique beginning levels here.
      #  skill_id => starting_level
      #--------------------------------------------------------------------
        
    @skill_level = {
        
    => 2,
        
    57 => 0,
        
    81 => 0
        
    }
      
    #--------------------------------------------------------------------
      #  Leon_Edit
      #  Put unique max levels here.
      #  skill_id => skill_end
      #--------------------------------------------------------------------
        
    @skill_max = {
        
    => 3,
        
    57 => 7
        
    }
        @
    hp_skills = []
        @
    hp_percent = []
        @
    sp_skills = []
        @
    sp_percent = []
        @
    str_skills = []
        @
    str_percent = []
        @
    dex_skills = []
        @
    dex_percent = []
        @
    int_skills = []
        @
    int_percent = []
        @
    agi_skills = []
        @
    agi_percent = []
        @
    skill_points 0
        
    @hp_bonus 0
        
    @sp_bonus 0
        
    @str_bonus 0
        
    @dex_bonus 0
        
    @int_bonus 0
        
    @agi_bonus 0
        leon_ga_skill_level_setup
    (actor_id)
      
    end
      
      def bonus
    (skill_id)
        
    #  HP calculations
        
    reqs Skill_Level
        
    @hp_bonus 0
        
    if reqs::Base_hp.keys.include?(skill_id)
          
    unless @hp_skills.include?(skill_id)
            @
    hp_skills.push(skill_id)
            @
    hp_percent.push(reqs::Base_hp[skill_id])
          
    end
        end
        
    if @hp_skills.size != nil
          
    for i in 0...@hp_skills.size
            
    @hp_bonus += @hp_percent[i] * skill_level[@hp_skills[i]]
          
    end
        end
        
    #  SP calculations
        
    @sp_bonus 0
        
    if reqs::Base_sp.keys.include?(skill_id)
          
    unless @sp_skills.include?(skill_id)
            @
    sp_skills.push(skill_id)
            @
    sp_percent.push(reqs::Base_sp[skill_id])
          
    end
        end
        
    if @sp_skills.size != nil
          
    for i in 0...@sp_skills.size
            
    @sp_bonus += @sp_percent[i] * skill_level[@sp_skills[i]]
          
    end
        end
        
    #  STR calculations
        
    @str_bonus 0
        
    if reqs::Base_str.keys.include?(skill_id)
          
    unless @str_skills.include?(skill_id)
            @
    str_skills.push(skill_id)
            @
    str_percent.push(reqs::Base_str[skill_id])
          
    end
        end
        
    if @str_skills.size != nil
          
    for i in 0...@str_skills.size
            
    @str_bonus += @str_percent[i] * skill_level[@str_skills[i]]
          
    end
        end
        
    #  DEX calculations
        
    @dex_bonus 0
        
    if reqs::Base_dex.keys.include?(skill_id)
          
    unless @dex_skills.include?(skill_id)
            @
    dex_skills.push(skill_id)
            @
    dex_percent.push(reqs::Base_dex[skill_id])
          
    end
        end
        
    if @dex_skills.size != nil
          
    for i in 0...@dex_skills.size
            
    @dex_bonus += @dex_percent[i] * skill_level[@dex_skills[i]]
          
    end
        end
        
    #  INT calculations
        
    @int_bonus 0
        
    if reqs::Base_int.keys.include?(skill_id)
          
    unless @int_skills.include?(skill_id)
            @
    int_skills.push(skill_id)
            @
    int_percent.push(reqs::Base_int[skill_id])
          
    end
        end
        
    if @int_skills.size != nil
          
    for i in 0...@int_skills.size
            
    @int_bonus += @int_percent[i] * skill_level[@int_skills[i]]
          
    end
        end
        
    #  AGI calculations
        
    @agi_bonus 0
        
    if reqs::Base_agi.keys.include?(skill_id)
          
    unless @agi_skills.include?(skill_id)
            @
    agi_skills.push(skill_id)
            @
    agi_percent.push(reqs::Base_agi[skill_id])
          
    end
        end
        
    if @agi_skills.size != nil
          
    for i in 0...@agi_skills.size
            
    @agi_bonus += @agi_percent[i] * skill_level[@agi_skills[i]]
          
    end
        end
      end
      
      def base_maxhp
        n 
    leon_ga_skill_level_basehp
        o 
    = @hp_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def base_maxsp
        n 
    leon_ga_skill_level_basesp
        o 
    = @sp_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def base_str
        n 
    leon_ga_skill_level_basestr
        o 
    = @str_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def base_dex
        n 
    leon_ga_skill_level_basedex
        o 
    = @dex_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def base_int
        n 
    leon_ga_skill_level_baseint
        o 
    = @int_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def base_agi
        n 
    leon_ga_skill_level_baseint
        o 
    = @agi_bonus
        
    if != nil
          p 
    0.01 n
          
    return p
        
    else
          return 
    n
        end
      end
      
      def skill_learn
    ?(skill_id)
        
    reqs Skill_Level
        unless 
    @skill_level.include?(skill_id)
          @
    skill_level[skill_id] = reqs::Beginning_Default
       end
        unless 
    @skill_max.include?(skill_id)
          @
    skill_max[skill_id] = reqs::Max_Default
        end
        leon_ga_skill_level_skill_learn
    ?(skill_id)
      
    end
      
      def skill_can_learn
    ?(skill_id)
        
    reqs Skill_Level
        
    if reqs::Level_Req.has_key?(skill_id)
          
    unless level >= reqs::Level_Req[skill_id]
            return 
    false
          end
        end
        
    if reqs::Skill_Req.has_key?(skill_id)
          
    skill_number reqs::Skill_Req[skill_id][0]
          
    unless skill_level[skill_number] >= reqs::Skill_Req[skill_id][1]
            return 
    false
          end
        end
        
    return true
      end
      
      def skill_can_use
    ?(skill_id)
        
    reqs Skill_Level
        
    if reqs::Skill_Add.has_key?(skill_id)
          if 
    skill_level[skill_id] >= reqs::Skill_Add[skill_id][0]
            
    $data_skills[skill_id].plus_state_set.push(reqs::Skill_Add[skill_id][1])
          
    end
        end
        
    if reqs::Skill_Minus.has_key?(skill_id)
          if 
    skill_level[skill_id] >= reqs::Skill_Minus[skill_id][0]
            
    $data_skills[skill_id].minus_state_set.push(reqs::Skill_Minus[skill_id][1])
          
    end
        end
        
    if reqs::Skill_Element.has_key?(skill_id)
          if 
    skill_level[skill_id] >= reqs::Skill_Element[skill_id][0]
            
    unless $data_skills[skill_id].element_set.include?(reqs::Skill_Element[skill_id][1])
              
    $data_skills[skill_id].element_set.push(reqs::Skill_Element[skill_id][1])
            
    end
          end
        end
        
    return false unless leon_skill_level_levelcheck(skill_id)
        return 
    false unless leon_skill_level_skillcheck(skill_id)
        if 
    not skill_learn?(skill_id)
          return 
    false
        end
        
    if skill_level[skill_id] == 0
          
    return false
        end
        
    return super
      end
      
      def leon_skill_level_levelcheck
    (skill_id)
        
    reqs Skill_Level
        
    if reqs::Level_Req.has_key?(skill_id)
          
    unless level >= reqs::Level_Req[skill_id]
            return 
    false
          end
        end
        
    return true
      end
      
      def leon_skill_level_skillcheck
    (skill_id)
        
    reqs Skill_Level
        
    if reqs::Skill_Req.has_key?(skill_id)
          
    skill_number reqs::Skill_Req[skill_id][0]
          
    unless skill_level[skill_number] >= reqs::Skill_Req[skill_id][1]
            return 
    false
          end
        end
        
    return true
      end
        
      def exp
    =(exp)
        @
    exp = [[exp9999999].min0].max
        
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
          
    @level += 1
          
    @skill_points += SKILL_POINTS
          
    for j in $data_classes[@class_id].learnings
            
    if j.level == @level
              learn_skill
    (j.skill_id)
            
    end
          end
        end
        
    while @exp < @exp_list[@level]
          @
    level -= 1
        end
        
    @hp = [@hpself.maxhp].min
        
    @sp = [@spself.maxsp].min
      end
      
    end

    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #  Window_Skill
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    class Window_Skill
      
      
    #--------------------------------------------------------------------
      #  Constant Listings
      #--------------------------------------------------------------------
      
    PASSIVE_SKILL_ID 500
      
    #--------------------------------------------------------------------
      #  Alias Listings
      #--------------------------------------------------------------------
      
    alias leon_ws_skill_level_refresh refresh
      
      def refresh
        
    if self.contents != nil
          self
    .contents.dispose
          self
    .contents nil
        end
        
    @data = []
        for 
    i in 0...@actor.skills.size
          skill 
    $data_skills[@actor.skills[i]]
          if 
    skill != nil
            
    if @actor.skill_level[skill.id] > 0
              unless skill
    .element_set.include?(PASSIVE_SKILL_ID)
                @
    data.push(skill)
              
    end
            end
          end
        end
        
    @item_max = @data.size
        
    if @item_max 0
          self
    .contents Bitmap.new(width 32row_max 32)
          
    self.contents.font.name $defaultfonttype
          self
    .contents.font.size 18
          
    for i in 0...@item_max
            draw_item
    (i)
          
    end
        end
      end
    end

    #----------------------------------------------------------------------
    #  Window_Skillinfo  Info Window
    #----------------------------------------------------------------------
    class Window_Skillinfo Window_Base
      def initialize
        super
    (0064064)
        
    self.contents Bitmap.new(width 32height 32)
        
    self.contents.font.name "Tahoma" 
        
    self.contents.font.size 18
      end
      
      def update
    (help_text)
        
    self.contents.clear
        self
    .contents.draw_text(0060032help_text)
      
    end
    end


    #----------------------------------------------------------------------
    #  Window_Skillhero Hero Window
    #----------------------------------------------------------------------
    class Window_Skillhero Window_Base
      def initialize
    (actor)
        
    super(064180128)
        
    self.contents Bitmap.new(width 32height 32)
        
    self.contents.font.name "Tahoma" 
        
    self.contents.font.size 18
        
    @actor actor
        refresh
      end
      
      def refresh
        self
    .contents.clear
        draw_actor_name
    (@actor500)
        
    draw_actor_class(@actor5032)
        
    self.contents.draw_text(100644032, @actor.skill_points.to_s)
        
    self.contents.font.color system_color
        self
    .contents.draw_text(004532"Имя:")
        
    self.contents.draw_text(0324532"Класс:")
        
    self.contents.draw_text(0649532"Очки умения:")
      
    end
    end
        




    #----------------------------------------------------------------------
    #  Window_Skilllist List Window
    #----------------------------------------------------------------------
    class Window_Skilllist Window_Selectable
      
    #--------------------------------------------------------------------
      #  Set Passive Skill ID here.
      #--------------------------------------------------------------------
      
    PASSIVE_SKILL_ID 500
      
      def initialize
    (actor)
        
    super(18064460416)
        @
    column_max 2
        self
    .contents Bitmap.new(width 32height 32)
        
    self.contents.font.name "Tahoma"
        
    self.contents.font.size 18
        
    @actor actor
        self
    .active false
        self
    .index = -1
      end
      
      def skill
        
    if @data !=nil
          
    return @data[@index]
        
    end
      end
      
      def refresh
        
    if self.contents != nil
          self
    .contents.dispose
          self
    .contents nil
        end
        
    @data = []
        for 
    i in 0...@actor.skills.size
          skill 
    $data_skills[@actor.skills[i]]
          if 
    skill != nil
            unless skill
    .element_set.include?(PASSIVE_SKILL_ID)
              @
    data.push(skill)
            
    end
          end
        end
        
    @item_max = @data.size
        
    if @item_max 0
          self
    .contents Bitmap.new(width 32row_max 32)
          
    self.contents.font.name "Tahoma"
          
    self.contents.font.size 18
          
    for i in 0...@item_max
            draw_item
    (i)
          
    end
        end
      end
        
      def draw_item
    (index)
        
    skill = @data[index
        if @
    actor.skill_can_learn?(skill.id) == true
          self
    .contents.font.color normal_color
        
    else
          
    self.contents.font.color disabled_color
        end
        unless skill
    .element_set.include?(PASSIVE_SKILL_ID)
          
    index * (195 32)
          
    index 32
          rect 
    Rect.new(xyself.width / @column_max 3232)
          
    self.contents.fill_rect(rectColor.new(0000))
          
    bitmap RPG::Cache.icon(skill.icon_name)
          
    opacity self.contents.font.color == normal_color 255 128
          self
    .contents.blt(x4bitmapRect.new(002424), opacity)
          
    self.contents.draw_text(28y13432skill.name0)
          if @
    actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.font.color Color.new(4025040255)
            
    self.contents.draw_text(+155y10032"Max")
          else
            
    self.contents.font.color Color.new(25025013255)
            
    self.contents.draw_text(159y10032
            (@
    actor.skill_level[skill.id].to_s) + "/" + (@actor.skill_max[skill.id].to_s))
          
    end
        end
      end
      
      def refresh1
        
    if self.contents != nil
          self
    .contents.dispose
          self
    .contents nil
        end
        
    @data = []
        for 
    i in 0...@actor.skills.size
          skill 
    $data_skills[@actor.skills[i]]
          if 
    skill != nil
            
    if skill.element_set.include?(PASSIVE_SKILL_ID)
              @
    data.push(skill)
            
    end
          end
        end
        
    @item_max = @data.size
        
    if @item_max 0
          self
    .contents Bitmap.new(width 32row_max 32)
          
    self.contents.font.name "Tahoma"
          
    self.contents.font.size 18
          
    for i in 0...@item_max
            draw_item1
    (i)
          
    end
        end
      end
        
      def draw_item1
    (index)
        
    skill = @data[index]
        if @
    actor.skill_can_learn?(skill.id) == true
          self
    .contents.font.color normal_color
        
    else
          
    self.contents.font.color disabled_color
        end
        
    if skill.element_set.include?(PASSIVE_SKILL_ID)
          
    index * (195 32)
          
    index 32
          rect 
    Rect.new(xyself.width / @column_max 3232)
          
    self.contents.fill_rect(rectColor.new(0000))
          
    bitmap RPG::Cache.icon(skill.icon_name)
          
    opacity self.contents.font.color == normal_color 255 128
          self
    .contents.blt(x4bitmapRect.new(002424), opacity)
          
    self.contents.draw_text(28y13432skill.name0)
          if @
    actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.font.color Color.new(4025040255)
            
    self.contents.draw_text(+155y10032"Максимом")
          else
            
    self.contents.font.color Color.new(25025013255)
            
    self.contents.draw_text(159y10032
            (@
    actor.skill_level[skill.id].to_s) + "/" + (@actor.skill_max[skill.id].to_s))
          
    end
        end
      end
      
    end

    #----------------------------------------------------------------------
    #  Window_Skilldesc
    #----------------------------------------------------------------------
    class Window_Skilldesc Window_Base
      
    #--------------------------------------------------------------------
      #  Set Passive skill ID to the same as above.
      #  Set INCREASE_PER_LEVEL the same as the ones above
      #--------------------------------------------------------------------
      
    PASSIVE_SKILL_ID 500
      INCREASE_PER_LEVEL 
    25
      
      def initialize
    (actorskill)
        
    super(4540550400)
        
    self.contents Bitmap.new(width 32height 32)
        
    self.contents.font.name "Tahoma"
        
    self.contents.font.size 18
        
    @actor actor
        self
    .visible false
        self
    .1000
      end
      
      def refresh
    (skill)
        
    self.contents.clear
        reqs 
    Skill_Level
        
    for i in 0...reqs::Weapon_Skills.length
          
    if skill.id == reqs::Weapon_Skills[i]
            
    refresh2(skill)
            return
          
    end
        end
        
    @actor.skill_can_use?(skill.id)
        
    bitmap RPG::Cache.icon(skill.icon_name)
        
    self.contents.font.color system_color
        
    #Draws 'Elements:'
        
    self.contents.draw_text(1279612032"Стихия:")
        
    #Draws the word for SP
        
    self.contents.draw_text(41008032$data_system.words.sp ":")
        
    #Draws 'Skill Level:'
        
    self.contents.draw_text(160018032"Уровень умения:")  
        
    #Draws 'Cures:'
        
    self.contents.draw_text(09612032"Лечебное:")
        
    #Draws 'Inflicts:'
        
    self.contents.draw_text(022812032"Атакующее:")
        
    #Draws 'Next Level's Range:'
        
    self.contents.draw_text(3649616532"Мощь на следующем уровне:"1)
        
    #Attack Influence
        
    self.contents.font.size 18
        
    #Draws 'Increase per Level:'
        
    self.contents.draw_text(12730415032"Усиление с уровнем:")
        
    #Draws 'Range'
        
    self.contents.draw_text(34530416532"Мощь:")
        
    #Draws Attack Type
        
    self.contents.draw_text(34532412032"Тип:")
        
    #Draws 'Attack' influence
        
    self.contents.draw_text(12722812032"Влияние атаки:")
        
    #Draws 'PDEF' influence
        
    self.contents.draw_text(12724712032"Влияние ф.защ:")
        
    #Draws 'MDEF' influence
        
    self.contents.draw_text(12726612032"Влияние М.защ:")
        
    #Draws 'Accuracy'
        
    self.contents.draw_text(12728512032"Разброс:")
        
    self.contents.font.size 18
        self
    .contents.font.color normal_color
        
    #Sets Icon Opacity
        
    opacity self.contents.font.color == normal_color 255 128
        
    #Draws Icon
        
    self.contents.blt(04bitmapRect.new(002424), opacity)
        
    #Draws Skill Name
        
    self.contents.draw_text(28018432skill.name0)
        
    #Draws SP cost
        
    self.contents.draw_text(45009032skill.sp_cost.to_s)
        
    #Draws Skill Level Number
        
    self.contents.font.color Color.new(25025013255)
        
    self.contents.draw_text(29005032
        (@
    actor.skill_level[skill.id]).to_s +  "/" + (@actor.skill_max[skill.id]).to_s)
        
    self.contents.font.color normal_color
        
    #Draws Skill Description
        
    self.contents.draw_text(44833032skill.description)
        
    #Draws Atk Influence
        
    self.contents.font.size 18
        
    #Draws Skill Type
        
    if skill.atk_f 0
          self
    .contents.draw_text(3993248032"Физический")
        else
          
    self.contents.draw_text(3993248032"Магический")
        
    end
        self
    .contents.draw_text(2352283032skill.atk_f.to_s2)
        
    self.contents.draw_text(2352473032skill.pdef_f.to_s2)
        
    self.contents.draw_text(2352663032skill.mdef_f.to_s2)
        
    self.contents.draw_text(2352853032skill.hit.to_s2)
        
    #Draws % increase
        
    self.contents.draw_text(2773045032"+" INCREASE_PER_LEVEL.to_s "%")
        
    #Draws Range
        
    case skill.scope
        when 0
          self
    .contents.draw_text(39930416532"Нету")
        
    when 1
          self
    .contents.draw_text(39930416532"Один враг")
        
    when 2
          self
    .contents.draw_text(39930416532"Все враги")
        
    when 3
          self
    .contents.draw_text(39930416532"Один союзник")
        
    when 4
          self
    .contents.draw_text(39930416532"Все союзники")
        
    when 5
          self
    .contents.draw_text(39930416532"Мёртвые союзники")
        
    when 6
          self
    .contents.draw_text(39930416532"Использующий")
        
    end
        self
    .contents.font.size 18
        
    #Formulas for Next Level Range    #Formula for when skills level up
        
    power1 = (((INCREASE_PER_LEVEL *  0.01 *  @actor.skill_level[skill.id])* skill.power) + skill.power)
        
    power2 = (((INCREASE_PER_LEVEL *  0.01 *  (@actor.skill_level[skill.id] +1))* skill.power) + skill.power)
        
    #Draws Range
        
    next_level_range = (power2 * (skill.variance * -0.01) + power2).to_s " - " + (power2 * (skill.variance 0.01) + power2).to_s    
        next_level_range2 
    = ((power2 * (skill.variance * -0.01) + power2) * -1).to_s " - " + ((power2 * (skill.variance 0.01) + power2) * -1).to_s
        
    #Draws skill elements.
        
    elements = []
        
    skill.element_set.each do |i|
          
    unless [PASSIVE_SKILL_ID].include?(i)
            
    elements << $data_system.elements[i]
          
    end
        end
        
    for i in 0...elements.size
          self
    .contents.font.size 16
          self
    .contents.draw_text(165 + ((2) * 94), 120 + (12), 12032elements[i])
        
    end
        
    #Draws negated effects
        
    minus_status_data = []
        for 
    i in 1...$data_states.size
          
    if skill.minus_state_set.include?(i)
            
    minus_status_data.push($data_states[i].name)
          
    end
        end
        
    for i in 0...minus_status_data.size
          self
    .contents.font.size 16
          self
    .contents.draw_text(+ ((2) * 85), 120 + (12), 12032minus_status_data[i])
        
    end
        
    #Draws added statuses
        
    plus_status_data = []
        for 
    i in 1...$data_states.size
          
    if skill.plus_state_set.include?(i)
            
    plus_status_data.push($data_states[i].name)
          
    end
        end
        
    for i in 0...plus_status_data.size
          self
    .contents.font.size 16
          self
    .contents.draw_text(+ ((2) * 85), 252 + (12), 12032plus_status_data[i])
        
    end
        
    #If skill is a heal skill...
        
    if skill.power 0
          self
    .contents.font.size 18
          self
    .contents.font.color system_color
          self
    .contents.draw_text(3553216532"Лечебная мощь:"1)
          
    self.contents.draw_text(35516017032"Средняя мощь:")
          
    self.contents.draw_text(35522816532"Следующий уровень:"1)
          
    self.contents.font.color Color.new(64245128255)
          
    #If skill_level is higher than 0...
          
    if @actor.skill_level[skill.id] > 0
            
    #Draw level's Heal Range
            
    self.contents.draw_text(3556416532, (((skill.variance * -0.01) * power1 power1) * -1).to_s " - " + (((skill.variance 0.01) * power1 power1) * -1).to_s1)
          else
            
    #Draw level 0's heal range
            
    self.contents.draw_text(35564165320.to_s " - " 0.to_s1)
          
    end
          
    #If skill_level is higher than 0...
          
    if @actor.skill_level[skill.id] > 0
            
    #Draw's Level's current average power
            
    self.contents.draw_text(35519216532, (power1 * -1).to_s1)
          else
            
    #Draws Level's Healing Average Power
            
    self.contents.draw_text(355192165320.to_s1)
          
    end
          
    #Draws Next level's Healing Average
          
    if @actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.draw_text(35526016532"----------"1)
          else
            
    self.contents.draw_text(35526016532, (power2 * -1).to_s1)
          
    end
          
    #Draws Next level's range
          
    if @actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.draw_text(35512816532"----------"1)
          else
            
    self.contents.draw_text(35512816532next_level_range21)
          
    end
          self
    .contents.font.color normal_color
        
    else
          
    self.contents.font.size 18
          self
    .contents.font.color system_color
          self
    .contents.draw_text(3553216532"Мощь:"1)
          
    self.contents.draw_text(35516016532"Средняя мощь:"1)
          
    self.contents.draw_text(35522816532"Следующий уровень:"1)
          
    self.contents.font.color Color.new(210372255)
          
    #If skill_level is higher than 0...
          
    if @actor.skill_level[skill.id] > 0
            
    #Draw Damage Range
            
    self.contents.draw_text(3556416532, ((skill.variance * -0.01) * power1 power1).to_s " - " + ((skill.variance 0.01) * power1 power1).to_s1)
          else
            
    #Draw level 0's range
            
    self.contents.draw_text(35564165320.to_s " - " 0.to_s1)
          
    end
          
    #If skill_level is higher than 0...
          
    if @actor.skill_level[skill.id] > 0
            
    #Draw Damage Average
            
    self.contents.draw_text(35519216532power1.to_s1)
          else
            
    #Draw level 0's Avg
            
    self.contents.draw_text(355192165320.to_s1)
          
    end
          
    #Draw's Next Level's Avg.
          
    if @actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.draw_text(35526016532"----------"1)
          else
            
    self.contents.draw_text(35526016532power2.to_s1)
          
    end
          
    #Draw's Next Level's Range
          
    if @actor.skill_level[skill.id] == @actor.skill_max[skill.id]
            
    self.contents.draw_text(35512816532"----------"1)
          else
            
    self.contents.draw_text(35512816532next_level_range1)
          
    end
          self
    .contents.font.color normal_color
        end
      end
      
      def refresh2
    (skill)
        
    self.contents.font.color system_color
        
    #Draws 'Skill Level:'
        
    self.contents.draw_text(200012032"Уровень умения:")  
        
    self.contents.draw_text(3553216532"Процент атаки:"1)
        
    self.contents.draw_text(3559616532"На следующем уровне:"1)
        
    #Draws Attack Type
        
    self.contents.draw_text(33532412032"Тип:")
        
    #Draws Skill Name
        
    self.contents.draw_text(28018432skill.name0)
        
    #Draws Skill Level Number
        
    self.contents.font.color Color.new(25025013255)
        
    self.contents.draw_text(29005032
        (@
    actor.skill_level[skill.id]).to_s +  "/" + (@actor.skill_max[skill.id]).to_s)
        
    #Draws Skill Description
        
    self.contents.font.color normal_color
        self
    .contents.draw_text(44833032skill.description)
        
    self.contents.draw_text(4203248032"Опытность")
        
    reqs Skill_Level
        
    case @actor.skill_level[skill.id]
        
    when 0
          self
    .contents.draw_text(3556416532, ((@actor.rankd 100).round).to_s "%"1)
          
    self.contents.draw_text(35512816532, ((@actor.rankc 100).round).to_s "%"1)
        
    when 1
          self
    .contents.draw_text(3556416532, ((@actor.rankc 100).round).to_s "%"1)
          
    self.contents.draw_text(35512816532, ((@actor.rankb 100).round).to_s "%"1)
        
    when 2
          self
    .contents.draw_text(3556416532, ((@actor.rankb 100).round).to_s "%"1)
          
    self.contents.draw_text(35512816532, ((@actor.ranka 100).round).to_s "%"1)
        
    when 3
          self
    .contents.draw_text(3556416532, ((@actor.ranka 100).round).to_s "%"1)
          
    self.contents.draw_text(35512816532, ((@actor.ranks 100).round).to_s "%"1)
        
    when 4
          self
    .contents.draw_text(3556416532, ((@actor.ranks 100).round).to_s "%"1)
          
    self.contents.draw_text(35512816532"Нет"1)
        
    end
        
    #Draws Icon
        
    bitmap RPG::Cache.icon(skill.icon_name)
        
    self.contents.blt(04bitmapRect.new(002424), opacity)
      
    end
    end

    #===================================
    #  Window_Confirm
    #===================================
    class Window_Skillconfirm Window_Selectable
      def initialize
        super
    (25619212896)
        
    self.contents Bitmap.new(width 32height 32)
        
    self.contents.font.name "Tahoma" 
        
    self.contents.font.size 18
        self
    .visible false
        self
    .= -1000
        self
    .index = -1
        self
    .active false
      end
      
      def refresh
        self
    .contents.clear
        
    @data = [self.contents.draw_text(009632"Да"1), self.contents.draw_text(0329632"Нет"1)]
        @
    item_max = @data.size
      end
    end



    #+++++++++++++++++++++++++++++++++++
    #  Scene_Skilllevel
    #+++++++++++++++++++++++++++++++++++
    class Scene_Skill_level
      
      def initialize
    (actor_index 0skilltype_index 0)
        @
    actor_index actor_index
        
    @skilltype_index skilltype_index
      end
      
      def main
        
    @actor $game_party.actors[@actor_index]
        @
    skillinfo_window Window_Skillinfo.new
        @
    skillhero_window Window_Skillhero.new(@actor)
        @
    skilllist_window Window_Skilllist.new(@actor)
       
        @
    skilldesc_window Window_Skilldesc.new(@actor, @skilllist_window.skill)
        @
    confirm_window Window_Skillconfirm.new
        @
    skill = @skilllist_window.skill
        
        c1 
    "Умения"
        
    c2 ""
        
        
    @skilltype_window Window_Command.new(180, [c1])
        @
    skilltype_window.415
        
    @skilltype_window.index = @skilltype_index
        
        Graphics
    .transition
        loop 
    do
          
    Graphics.update
          Input
    .update
          update
          
    if $scene != self
            
    break
          
    end
        end
        Graphics
    .freeze
        
    @skillinfo_window.dispose
        
    @skillhero_window.dispose
        
    @skilllist_window.dispose
        
    @skilltype_window.dispose
        
    @skilldesc_window.dispose
        
    @confirm_window.dispose
      end
      
      def update
        
    @skillhero_window.update
        
    @skilltype_window.update
        
    @skilldesc_window.update
        
        
    if @skilltype_window.active
          update_skilltype
          
    return
        
    end
        
        
    if @skilllist_window.active
          update_skilllist
          
    return
        
    end
        
        
    if @skilldesc_window.visible
          update_skilldesc
          
    return
        
    end
        
        
    if @confirm_window.active
          update_confirm
          
    return
        
    end
        
        
    if Input.trigger?(Input::L)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += $game_party.actors.size 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new
        
    end
          
        
    if Input.trigger?(Input::R)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new
        
    end
      end
        
      def update_skilltype
        
    if @skilltype_window.index == 0
          
    @skillinfo_window.update("Умения.")
          @
    skilllist_window.refresh
          
    if Input.trigger?(Input::C)
            @
    skilltype_window.active false
            
    @skilllist_window.active true
            
    @skilllist_window.index 0
          end
        
    else
          @
    skillinfo_window.update("-")
          @
    skilllist_window.refresh1
          
    if Input.trigger?(Input::C)
            @
    skilltype_window.active false
            
    @skilllist_window.active true
            
    @skilllist_window.index 0
          end
        end
        
        
    if Input.trigger?(Input::L)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += $game_party.actors.size 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new(@actor_index)
        
    end
          
        
    if Input.trigger?(Input::R)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new(@actor_index)
        
    end
        
        
    if Input.trigger?(Input::B)
          
    $scene Scene_Map.new
        
    end
      end
      
      def update_skilllist
        
    @skilllist_window.update
        
    @confirm_window.= -1000
        
    @skillinfo_window.update("Нажми 'SHIFT', чтобы увидеть подробное описание")
        
        if 
    Input.trigger?(Input::B)
          @
    skilllist_window.index = -1
          
    @skilllist_window.active false
          
    @skilltype_window.active true
          
    return
        
    end
        
         
    if Input.trigger?(Input::A)
          if @
    skilllist_window.skill != nil
            
    @skilldesc_window.refresh(@skilllist_window.skill)
            @
    skilllist_window.active false
            
    @skilldesc_window.visible true
          
    else
            
    $game_system.se_play($data_system.buzzer_se)
          
    end
        end
        
        
    if Input.trigger?(Input::L)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += $game_party.actors.size 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new(@actor_index)
        
    end
          
        
    if Input.trigger?(Input::R)
          
    $game_system.se_play($data_system.cursor_se)
          @
    actor_index += 1
          
    @actor_index %= $game_party.actors.size
          $scene 
    Scene_Skill_level.new(@actor_index)
        
    end
        
        
    if Input.trigger?(Input::C)
        
    skill = @skilllist_window.skill
          
    if skill != nil
            
    if @actor.skill_can_learn?(skill.id) == true
              
    if @actor.skill_level[@skilllist_window.skill.id] < @actor.skill_max[@skilllist_window.skill.id]
                if @
    actor.skill_points 0
                  
    @confirm_window.refresh
                  
    @skilllist_window.active false
                  
    @confirm_window.active true
                  
    @confirm_window.visible true
                  
    @confirm_window.index 0
                
    else
                  
    $game_system.se_play($data_system.buzzer_se)
                
    end
              
    else
                
    $game_system.se_play($data_system.buzzer_se)
              
    end
            
    else
              
    $game_system.se_play($data_system.buzzer_se)
            
    end
          end
        end
      end  
      
      def update_skilldesc
        
    if @skilldesc_window.visible == true
          
    @skilllist_window.active false
          
    if Input.trigger?(Input::B)
            @
    skilldesc_window.visible false
            
    @skilllist_window.active true
          end
        end
      end
      
      def update_confirm
        
    @confirm_window.1000
        
    @confirm_window.update
        
    @skillinfo_window.update("Are you sure?")
        if 
    Input.trigger?(Input::B)
          @
    confirm_window.active false
          
    @confirm_window.visible false
          
    @skilllist_window.active true
        end
        
    if Input.trigger?(Input::C)
          if @
    skilltype_window.index == 0
            
    case @confirm_window.index
            when 0
              
    @actor.skill_level[@skilllist_window.skill.id] += 1
              
    @actor.skill_points -= 1
              
    @skillhero_window.refresh
              
    @skilllist_window.refresh
              
    @confirm_window.visible false
              
    @skilllist_window.active true
              
    @confirm_window.index = -1
              
    @actor.bonus(@skilllist_window.skill.id)
              return
            
    when 1
              
    @confirm_window.visible false
              
    @skilllist_window.active true
              
    @confirm_window.index = -1
            end
          
    else
            case @
    confirm_window.index
            when 0
              
    @actor.skill_level[@skilllist_window.skill.id] += 1
              
    @actor.skill_points -= 1
              
    @skillhero_window.refresh
              
    @skilllist_window.refresh1
              
    @confirm_window.visible false
              
    @skilllist_window.active true
              
    @confirm_window.index = -1
              
    @actor.bonus(@skilllist_window.skill.id)
              return
            
    when 1
              
    @confirm_window.visible false
              
    @skilllist_window.active true
              
    @confirm_window.index = -1
            end
          end
        end
      end
    end 
    Пока что много багов и глюков но я его возможно подправлю(создал его не я)
    Последний раз редактировалось Andrew; 13.02.2011 в 13:57.


  2. #2
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Скрипт улучшен мною
    убрано всё лишнее и расставлено всё по местам(в инфе об умении,а то там бардак был), переведено почти полностью
    кстати как перевести Couldn't Steal
    переводчик говорит Нельзя Украсть
    а при чём здесь украсть


  3. #3
    Хранитель Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,401
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    Andrew, ты, безусловно, молодец, что публикуешь скрипты (особенно в своей обработке). И не твоя вина, что в разделе "Cкрипты" нету топика про то, как оформлять темы. Но лично моя просьба - давай названия топикам по наименованию скрипта, без лишней лирики. Т.е. не "Типы сообщений", а "Universal Message System", не "Пункт Прокачка в меню", а "Skill level System". И в архиве Светлого, куда ведёт твоя ссылка на демо-версию, есть ссылка на оригнальный топик автора скрипта - вот здесь - с подробнейшим описанием, правда, на английском.
    Другое дело, что однажды назвав тему, ты не сможешь её переименовать - и это тоже не твоя вина.
    Последний раз редактировалось Inca; 13.02.2011 в 14:21.

  4. #4
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Ну хорошо


  5. #5

    По умолчанию

    Поправил название.

  6. #6
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Спс


  7. #7
    Авторитет Аватар для Hosse
    Информация о пользователе
    Регистрация
    23.03.2010
    Адрес
    Королёв
    Сообщений
    1,603
    Записей в дневнике
    54
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Andrew Посмотреть сообщение
    Скрипт улучшен мною
    убрано всё лишнее и расставлено всё по местам(в инфе об умении,а то там бардак был), переведено почти полностью
    кстати как перевести Couldn't Steal
    переводчик говорит Нельзя Украсть
    а при чём здесь украсть
    Всё-таки это действительно "Нельзя украсть")
    Творчество, никак с играми не связанное:
    https://vk.com/amjee
    https://vk.com/r2space
    Моя рожа и всякий рэпчик живьём: https://www.instagram.com/rap_amjeenickyry/

  8. #8
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    ну ладно
    переведу как нельзя украсть


  9. #9
    Пользователь Аватар для Тайреш
    Информация о пользователе
    Регистрация
    19.05.2010
    Адрес
    Екатеринбург
    Сообщений
    39
    Репутация: 3 Добавить или отнять репутацию

    По умолчанию

    А на vx есть что-нибудь подобное?


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

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

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

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

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

Ваши права

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