Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

> Skill Shop for RMVX, Request by sithious-kun ^_^
Nechi
post Feb 25 2008, 06:23 AM
Post #1


Certamen Promus
Group Icon

Group: Revolutionary
Posts: 117
Type: None
RM Skill: Beginner




From this topic : http://www.rpgrevolution.com/forums/index.php?showtopic=9501

Add this script before main script :

Ver 3.1
CODE
#==============================================================================
# Skill Shop for RMVX Ver 3.1
#==============================================================================
MediaFire Hosting# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#3.0 Change How to set Price , Add wait Level Up option
#3.0 Fixed Bug, Edit Price Key Word
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]"  
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"  
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "[p-Price-]" for set Skill Price at Note in Skill Database.
Example : For set Price to 150

[p150]

You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor
  
  [1,4],[2,3],
  
  ],

=end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
  # Setting
  Wait_Lv_Up = false # Wait 1 Lv up for use skill from buy
  Show_cha = false # Show Charactor Graphic in Select Window
  # Learn Text
  How_Learn = "What 's hero can learn?"
  Can_Learn = "Can Learn"
  Can_Learn_Lv = "On Lv"
  Cant_Learn = "Can't Learn"
  Learnt = "Learnt"
  Teach = "Teach"
  Cancel = "Cancel"
  Next_Lv = "Next Lv"
  Can_use = "%s can use now!"
  # Price Data For Non Set
  PRICE = 100
  # Hero Data
  SKILL_BUY = {
  # Add what skill can hero buy Here
  # [ID of skill,Level]
  
  1 => [ #Id of Actor
  
  [1,4],[2,3],[3,1],
  
  ],
  
  2 => [ #Id of Actor
  
  [1,4],[2,3],[3,1],
  
  ],
  
  # End
  }
  # Add Price
  def self.skill_price(id)
    text = $data_skills[id].note
    text.scan(/\[p([0-9]+)\]/)
    if $1.to_i != 0 then
      price = $1.to_i
    else
      price = PRICE
    end
    return price
  end
  # Add Hero id
  def self.skill_buy(id)
    if SKILL_BUY.include?(id)
      return SKILL_BUY[id]
    else
      return []
    end
  end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @actor_id = actor_id
    @name = actor.name
    @character_name = actor.character_name
    @character_index = actor.character_index
    @face_name = actor.face_name
    @face_index = actor.face_index
    @class_id = actor.class_id
    @weapon_id = actor.weapon_id
    @armor1_id = actor.armor1_id
    @armor2_id = actor.armor2_id
    @armor3_id = actor.armor3_id
    @armor4_id = actor.armor4_id
    @level = actor.initial_level
    @exp_list = Array.new(101)
    make_exp_list
    @exp = @exp_list[@level]
    @skills = []
    @le_skills = []
    @le = []
    for i in self.class.learnings
      learn_skill(i.skill_id) if i.level <= @level
    end
    clear_extra_values
    recover_all
  end
  #--------------------------------------------------------------------------
  def le_skills
    result = []
    for i in @le_skills
      result.push($data_skills[i])
    end
    return result
  end
  #--------------------------------------------------------------------------
  def learn_le_skill(skill_id)
    unless skill_learn?($data_skills[skill_id])
      @le_skills.push(skill_id)
      @le_skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def forget_skill(skill_id)
    @skills.delete(skill_id)
    @le_skills.delete(skill_id)
  end
  #--------------------------------------------------------------------------
  def skill_learn?(skill)
    if @skills.include?(skill.id)
      return true
    elsif @le_skills.include?(skill.id)
      return true
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  def le_learn_skill(skill_id)
    unless @skills.include?(skill_id)
      @skills.push(skill_id)
      @skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return false if @le_skills.include?(skill.id)
    return false unless skill_learn?(skill)
    return super
  end
  #--------------------------------------------------------------------------
  def learn?(skill)
    learn = skill_learn?(skill)
    if learn == true
      return false
    else
      return true
    end
  end
  #--------------------------------------------------------------------------
  def le_skill?(skill)
    return @le_skills.include?(skill.id)
  end
  #--------------------------------------------------------------------------
  def display_level_up(new_skills)
    $game_message.new_page
    text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
    $game_message.texts.push(text)
    for skill in new_skills
      unless @le.include?(skill.id)
        text = sprintf(Vocab::ObtainSkill, skill.name)
        $game_message.texts.push(text)
      end
    end
    for i in 0...@le.size
      id = @le[i]
      name = $data_skills[id].name
      text = sprintf(SKILL_SHOP::Can_use, name)
      $game_message.texts.push(text)
    end
    @le = []
  end
  #--------------------------------------------------------------------------
  alias inc_level_up level_up
  def level_up
    inc_level_up
    @le = []
    for i in 0...@le_skills.size
      id = @le_skills[i]
      le_learn_skill(id)
      @le.push(id)
    end
    @le_skills = []
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for skill in @actor.skills
      @data.push(skill)
      if skill.id == @actor.last_skill_id
        self.index = @data.size - 1
      end
    end
    for skill in @actor.le_skills
      @data.push(skill)
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @actor.le_skill?(skill)
        text = SKILL_SHOP::Next_Lv
      else
        text = @actor.calc_mp_cost(skill)
      end
      self.contents.draw_text(rect, text, 2)
    end
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 304)
    @skill_shop_goods = $skill_shop
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in 0...@skill_shop_goods.size
      skill = $data_skills[@skill_shop_goods[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    price = SKILL_SHOP.skill_price(skill.id)
    enabled = (price <= $game_party.gold)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(skill, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, price, 2)
  end
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 304)
    @item = nil
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    if @item != nil
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_can_learn(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  def draw_actor_can_learn(actor, x, y)
    can = false
    lv = false
    ac_lv = 0
    can_learn = SKILL_SHOP.skill_buy(actor.id)
    id = @item.id
    for i in 0...can_learn.size
      if can_learn[i][0] == id
        can = true
        if can_learn[i][1] <= actor.level
          lv = true
        else
          lv = false
          ac_lv = can_learn[i][1]
        end
        break
      else
        can = false
      end
    end
    enabled = (can and lv and actor.learn?(@item))
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    if SKILL_SHOP::Show_cha
      name = actor.character_name
      index = actor.character_index
      size = contents.text_size(actor.name).width
      draw_character(name, index, x + 20 + size , y + 30)
    end
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if can == false
      text = SKILL_SHOP::Cant_Learn
    elsif can == true and lv == false
      ac = ac_lv.to_s
      text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
    elsif actor.learn?(@item) == false
      text = SKILL_SHOP::Learnt
    else
      text = SKILL_SHOP::Can_Learn
    end
    self.contents.draw_text(x, y, 200, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < @item_max
      y = WLH * (2 + @index * 2)
      unless SKILL_SHOP::Show_cha
        self.cursor_rect.set(0, y , contents.width, WLH)
      else
        self.cursor_rect.set(0, y - 4, contents.width,34)
      end
    end
  end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 112, 544, 304)
    @buy_window = Window_Skill_ShopBuy.new(0, 112)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @status_window = Window_Skill_ShopStatus.new(304, 112)
    @status_window.visible = false
    @status_window.active = false
  end
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    dispose_command_window
    @help_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @status_window.dispose
  end  
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @command_window.update
    @gold_window.update
    @dummy_window.update
    @buy_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @status_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = SKILL_SHOP::Teach
    s2 = SKILL_SHOP::Cancel
    @command_window = Window_Command.new(384, [s1, s2], 2)
    @command_window.y = 56
  end
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  def update_command_selection
    @help_window.set_text("")
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        @command_window.active = false
        @dummy_window.visible = false
        @buy_window.active = true
        @buy_window.visible = true
        @buy_window.refresh
        @status_window.visible = true
      when 1
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_buy_selection
    @status_window.item = @buy_window.skill
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.skill
      @price = SKILL_SHOP.skill_price(@item.id)
      enabled = (@price <= $game_party.gold)
      if not enabled
        Sound.play_buzzer
      else
        Sound.play_decision
        show_target_window
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      @actor = $game_party.members[@status_window.index]
      can = false
      lv = false
      can_learn = SKILL_SHOP.skill_buy(@actor.id)
      id = @item.id
      for i in 0...can_learn.size
        if can_learn[i][0] == id
          can = true
          if can_learn[i][1] <= @actor.level
            lv = true
          else
            lv = false
          end
          break
        else
          can = false
        end
      end
      enabled = (can and lv and @actor.learn?(@item))
      if not enabled
        Sound.play_buzzer
      else
        learn_target(@item.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  def learn_target(skill_id)
    Sound.play_shop
    unless SKILL_SHOP::Wait_Lv_Up
      @actor.learn_skill(skill_id)
    else
      @actor.learn_le_skill(skill_id)
    end
    $game_party.lose_gold(@price)
    @buy_window.refresh
    @gold_window.refresh
    @status_window.refresh
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def show_target_window
    @buy_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
  #--------------------------------------------------------------------------
  def hide_target_window
    @buy_window.active = true
    @status_window.active = false
    @status_window.index =- 1
  end
end


Ver 3.0
CODE
#==============================================================================
# Skill Shop for RMVX Ver 3.0
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#3.0 Change How to set Price , Add wait Level Up option
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]"  
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"  
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "\p[Price]" for set Skill Price at Note in Skill Database.
You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor
  
  [1,4],[2,3],
  
  ],

=end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
  # Setting
  Wait_Lv_Up = false # Wait 1 Lv up for use skill from buy
  Show_cha = false # Show Charactor Graphic in Select Window
  # Learn Text
  How_Learn = "What 's hero can learn?"
  Can_Learn = "Can Learn"
  Can_Learn_Lv = "On Lv"
  Cant_Learn = "Can't Learn"
  Learnt = "Learnt"
  Teach = "Teach"
  Cancel = "Cancel"
  Next_Lv = "Next Lv"
  Can_use = "%s can use now!"
  # Price Data For Non Set
  PRICE = 100
  # Hero Data
  SKILL_BUY = {
  # Add what skill can hero buy Here
  # [ID of skill,Level]
  
  1 => [ #Id of Actor
  
  [1,4],[2,3],[3,1],
  
  ],
  
  2 => [ #Id of Actor
  
  [1,4],[2,3],[3,1],
  
  ],
  
  # End
  }
  # Add Price
  def self.skill_price(id)
    text = $data_skills[id].note
    if (/\A\\[Pp]\[([0-9]+)\]/.match(text)) != nil then
      price = $1.to_i
    else
      price = PRICE
    end
    return price
  end
  # Add Hero id
  def self.skill_buy(id)
    if SKILL_BUY.include?(id)
      return SKILL_BUY[id]
    else
      return []
    end
  end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @actor_id = actor_id
    @name = actor.name
    @character_name = actor.character_name
    @character_index = actor.character_index
    @face_name = actor.face_name
    @face_index = actor.face_index
    @class_id = actor.class_id
    @weapon_id = actor.weapon_id
    @armor1_id = actor.armor1_id
    @armor2_id = actor.armor2_id
    @armor3_id = actor.armor3_id
    @armor4_id = actor.armor4_id
    @level = actor.initial_level
    @exp_list = Array.new(101)
    make_exp_list
    @exp = @exp_list[@level]
    @skills = []
    @le_skills = []
    @le = []
    for i in self.class.learnings
      learn_skill(i.skill_id) if i.level <= @level
    end
    clear_extra_values
    recover_all
  end
  #--------------------------------------------------------------------------
  def le_skills
    result = []
    for i in @le_skills
      result.push($data_skills[i])
    end
    return result
  end
  #--------------------------------------------------------------------------
  def learn_le_skill(skill_id)
    unless skill_learn?($data_skills[skill_id])
      @le_skills.push(skill_id)
      @le_skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def forget_skill(skill_id)
    @skills.delete(skill_id)
    @le_skills.delete(skill_id)
  end
  #--------------------------------------------------------------------------
  def skill_learn?(skill)
    if @skills.include?(skill.id)
      return true
    elsif @le_skills.include?(skill.id)
      return true
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  def le_learn_skill(skill_id)
    unless @skills.include?(skill_id)
      @skills.push(skill_id)
      @skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return false if @le_skills.include?(skill.id)
    return false unless skill_learn?(skill)
    return super
  end
  #--------------------------------------------------------------------------
  def learn?(skill)
    learn = skill_learn?(skill)
    if learn == true
      return false
    else
      return true
    end
  end
  #--------------------------------------------------------------------------
  def le_skill?(skill)
    return @le_skills.include?(skill.id)
  end
  #--------------------------------------------------------------------------
  def display_level_up(new_skills)
    $game_message.new_page
    text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
    $game_message.texts.push(text)
    for skill in new_skills
      unless @le.include?(skill.id)
        text = sprintf(Vocab::ObtainSkill, skill.name)
        $game_message.texts.push(text)
      end
    end
    for i in 0...@le.size
      id = @le[i]
      name = $data_skills[id].name
      text = sprintf(SKILL_SHOP::Can_use, name)
      $game_message.texts.push(text)
    end
    @le = []
  end
  #--------------------------------------------------------------------------
  alias inc_level_up level_up
  def level_up
    inc_level_up
    @le = []
    for i in 0...@le_skills.size
      id = @le_skills[i]
      le_learn_skill(id)
      @le.push(id)
    end
    @le_skills = []
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for skill in @actor.skills
      @data.push(skill)
      if skill.id == @actor.last_skill_id
        self.index = @data.size - 1
      end
    end
    for skill in @actor.le_skills
      @data.push(skill)
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @actor.le_skill?(skill)
        text = SKILL_SHOP::Next_Lv
      else
        text = @actor.calc_mp_cost(skill)
      end
      self.contents.draw_text(rect, text, 2)
    end
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 304)
    @skill_shop_goods = $skill_shop
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in 0...@skill_shop_goods.size
      skill = $data_skills[@skill_shop_goods[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    price = SKILL_SHOP.skill_price(skill.id)
    enabled = (price <= $game_party.gold)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(skill, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, price, 2)
  end
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 304)
    @item = nil
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    if @item != nil
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_can_learn(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  def draw_actor_can_learn(actor, x, y)
    can = false
    lv = false
    ac_lv = 0
    can_learn = SKILL_SHOP.skill_buy(actor.id)
    id = @item.id
    for i in 0...can_learn.size
      if can_learn[i][0] == id
        can = true
        if can_learn[i][1] <= actor.level
          lv = true
        else
          lv = false
          ac_lv = can_learn[i][1]
        end
        break
      else
        can = false
      end
    end
    enabled = (can and lv and actor.learn?(@item))
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    if SKILL_SHOP::Show_cha
      name = actor.character_name
      index = actor.character_index
      size = contents.text_size(actor.name).width
      draw_character(name, index, x + 20 + size , y + 30)
    end
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if can == false
      text = SKILL_SHOP::Cant_Learn
    elsif can == true and lv == false
      ac = ac_lv.to_s
      text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
    elsif actor.learn?(@item) == false
      text = SKILL_SHOP::Learnt
    else
      text = SKILL_SHOP::Can_Learn
    end
    self.contents.draw_text(x, y, 200, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < @item_max
      y = WLH * (2 + @index * 2)
      unless SKILL_SHOP::Show_cha
        self.cursor_rect.set(0, y , contents.width, WLH)
      else
        self.cursor_rect.set(0, y - 4, contents.width,34)
      end
    end
  end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 112, 544, 304)
    @buy_window = Window_Skill_ShopBuy.new(0, 112)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @status_window = Window_Skill_ShopStatus.new(304, 112)
    @status_window.visible = false
    @status_window.active = false
  end
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    dispose_command_window
    @help_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @status_window.dispose
  end  
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @command_window.update
    @gold_window.update
    @dummy_window.update
    @buy_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @status_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = SKILL_SHOP::Teach
    s2 = SKILL_SHOP::Cancel
    @command_window = Window_Command.new(384, [s1, s2], 2)
    @command_window.y = 56
  end
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  def update_command_selection
    @help_window.set_text("")
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        @command_window.active = false
        @dummy_window.visible = false
        @buy_window.active = true
        @buy_window.visible = true
        @buy_window.refresh
        @status_window.visible = true
      when 1
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_buy_selection
    @status_window.item = @buy_window.skill
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.skill
      @price = SKILL_SHOP.skill_price(@item.id)
      enabled = (@price <= $game_party.gold)
      if not enabled
        Sound.play_buzzer
      else
        Sound.play_decision
        show_target_window
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      @actor = $game_party.members[@status_window.index]
      can = false
      lv = false
      can_learn = SKILL_SHOP.skill_buy(@actor.id)
      id = @item.id
      for i in 0...can_learn.size
        if can_learn[i][0] == id
          can = true
          if can_learn[i][1] <= @actor.level
            lv = true
          else
            lv = false
          end
          break
        else
          can = false
        end
      end
      enabled = (can and lv and @actor.learn?(@item))
      if not enabled
        Sound.play_buzzer
      else
        learn_target(@item.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  def learn_target(skill_id)
    Sound.play_shop
    unless SKILL_SHOP::Wait_Lv_Up
      @actor.learn_skill(skill_id)
    else
      @actor.learn_le_skill(skill_id)
    end
    $game_party.lose_gold(@price)
    @buy_window.refresh
    @gold_window.refresh
    @status_window.refresh
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def show_target_window
    @buy_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
  #--------------------------------------------------------------------------
  def hide_target_window
    @buy_window.active = true
    @status_window.active = false
    @status_window.index =- 1
  end
end


Ver 2.0
CODE
#==============================================================================
# Skill Shop for RMVX Ver 2.0
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]"  
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"  
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can set text to use in Skill Shop under "# Learn Text".
You can set Skill Price under "# Price Data".
You can set Skill that the fighter each person can study under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]
=end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
  # Learn Text
  How_Learn = "What 's hero can learn?"
  Can_Learn = "Can Learn"
  Can_Learn_Lv = "On Lv"
  Cant_Learn = "Can't Learn"
  Learnt = "Learnt"
  Teach = "Teach"
  Cancel = "Cancel"
  # Price Data
  PRICE = {
  # for No Set Price
  0 => 100,
  # Add Price Here
  1 => 150,
  2 => 550,
  3 => 450,
  # End
  }
  # Hero Data
  SKILL_BUY = {
  # Add what skill can hero buy Here
  # [ID of skill,Level]
  
  1 => [
  
  [1,4],[2,3],[3,1],
  
  ],
  
  2 => [
  
  [1,4],[2,3],[3,1],
  
  ],
  
  # End
  }
  # Add Price
  def self.skill_price(id)
    if PRICE.include?(id)
      return PRICE[id]
    else
      return PRICE[0]
    end
  end
  # Add Hero id
  def self.skill_buy(id)
    if SKILL_BUY.include?(id)
      return SKILL_BUY[id]
    else
      return []
    end
  end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  def learn?(skill)
    learn = skill_learn?(skill)
    if learn == true
      return false
    else
      return true
    end
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 304)
    @skill_shop_goods = $skill_shop
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in 0...@skill_shop_goods.size
      skill = $data_skills[@skill_shop_goods[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    price = SKILL_SHOP.skill_price(skill.id)
    enabled = (price <= $game_party.gold)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(skill, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, price, 2)
  end
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 304)
    @item = nil
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    if @item != nil
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_can_learn(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  def draw_actor_can_learn(actor, x, y)
    can = false
    lv = false
    ac_lv = 0
    can_learn = SKILL_SHOP.skill_buy(actor.id)
    id = @item.id
    for i in 0...can_learn.size
      if can_learn[i][0] == id
        can = true
        if can_learn[i][1] <= actor.level
          lv = true
        else
          lv = false
          ac_lv = can_learn[i][1]
        end
        break
      else
        can = false
      end
    end
    enabled = (can and lv and actor.learn?(@item))
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    name = actor.character_name
    index = actor.character_index
    size = contents.text_size(actor.name).width
    draw_character(name, index, x + 20 + size , y + 30)
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if can == false
      text = SKILL_SHOP::Cant_Learn
    elsif can == true and lv == false
      ac = ac_lv.to_s
      text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
    elsif actor.learn?(@item) == false
      text = SKILL_SHOP::Learnt
    else
      text = SKILL_SHOP::Can_Learn
    end
    self.contents.draw_text(x, y, 200, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < @item_max
      y = WLH * (2 + @index * 2)
      self.cursor_rect.set(0, y - 4, contents.width,34)
    end
  end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 112, 544, 304)
    @buy_window = Window_Skill_ShopBuy.new(0, 112)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @status_window = Window_Skill_ShopStatus.new(304, 112)
    @status_window.visible = false
    @status_window.active = false
  end
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    dispose_command_window
    @help_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @status_window.dispose
  end  
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @command_window.update
    @gold_window.update
    @dummy_window.update
    @buy_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @status_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = SKILL_SHOP::Teach
    s2 = SKILL_SHOP::Cancel
    @command_window = Window_Command.new(384, [s1, s2], 2)
    @command_window.y = 56
  end
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  def update_command_selection
    @help_window.set_text("")
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        @command_window.active = false
        @dummy_window.visible = false
        @buy_window.active = true
        @buy_window.visible = true
        @buy_window.refresh
        @status_window.visible = true
      when 1
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_buy_selection
    @status_window.item = @buy_window.skill
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.skill
      @price = SKILL_SHOP.skill_price(@item.id)
      enabled = (@price <= $game_party.gold)
      if not enabled
        Sound.play_buzzer
      else
        Sound.play_decision
        show_target_window
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      @actor = $game_party.members[@status_window.index]
      can = false
      lv = false
      can_learn = SKILL_SHOP.skill_buy(@actor.id)
      id = @item.id
      for i in 0...can_learn.size
        if can_learn[i][0] == id
          can = true
          if can_learn[i][1] <= @actor.level
            lv = true
          else
            lv = false
          end
          break
        else
          can = false
        end
      end
      enabled = (can and lv and @actor.learn?(@item))
      if not enabled
        Sound.play_buzzer
      else
        learn_target(@item.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  def learn_target(skill_id)
    Sound.play_shop
    @actor.learn_skill(skill_id)
    $game_party.lose_gold(@price)
    @buy_window.refresh
    @gold_window.refresh
    @status_window.refresh
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def show_target_window
    @buy_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
  #--------------------------------------------------------------------------
  def hide_target_window
    @buy_window.active = true
    @status_window.active = false
    @status_window.index =- 1
  end
end


Ver 1.0
CODE
#==============================================================================
# Skill Shop for RMVX
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]"  
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"  
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can set text to use in Skill Shop under "# Learn Text".
You can set Skill Price under "# Price Data".
You can set Skill that the fighter each person can study under "# Hero Data".

=end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
  # Learn Text
  How_Learn = "What 's hero can learn?"
  Can_Learn = "Can Learn"
  Cant_Learn = "Can't Learn"
  Learnt = "Learnt"
  Teach = "Teach"
  Cancel = "Cancel"
  # Price Data
  PRICE = {
  # for No Set Price
  0 => 100,
  # Add Price Here
  1 => 150,
  2 => 550,
  3 => 450,
  # End
  }
  # Hero Data
  SKILL_BUY = {
  # Add what skill can hero buy Here
  1 => [1,2,3],
  2 => [1,6,7],
  # End
  }
  # Add Price
  def self.skill_price(id)
    if PRICE.include?(id)
      return PRICE[id]
    else
      return PRICE[0]
    end
  end
  # Add Hero id
  def self.skill_buy(id)
    if SKILL_BUY.include?(id)
      return SKILL_BUY[id]
    else
      return []
    end
  end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  def learn?(skill)
    learn = skill_learn?(skill)
    if learn == true
      return false
    else
      return true
    end
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 304)
    @skill_shop_goods = $skill_shop
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in 0...@skill_shop_goods.size
      skill = $data_skills[@skill_shop_goods[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    price = SKILL_SHOP.skill_price(skill.id)
    enabled = (price <= $game_party.gold)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(skill, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, price, 2)
  end
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 304)
    @item = nil
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @item != nil
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_can_learn(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  def draw_actor_can_learn(actor, x, y)
    can_learn = SKILL_SHOP.skill_buy(actor.id)
    id = @item.id
    enabled = (can_learn.include?(id) and actor.learn?(@item))
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if can_learn.include?(id) == false
      text = SKILL_SHOP::Cant_Learn
    elsif actor.learn?(@item) == false
      text = SKILL_SHOP::Learnt
    else
      text = SKILL_SHOP::Can_Learn
    end
    self.contents.draw_text(x, y, 200, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 112, 544, 304)
    @buy_window = Window_Skill_ShopBuy.new(0, 112)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @status_window = Window_Skill_ShopStatus.new(304, 112)
    @status_window.visible = false
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    dispose_command_window
    @help_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @status_window.dispose
    @target_window.dispose
  end  
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @command_window.update
    @gold_window.update
    @dummy_window.update
    @buy_window.update
    @status_window.update
    @target_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @target_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = SKILL_SHOP::Teach
    s2 = SKILL_SHOP::Cancel
    @command_window = Window_Command.new(384, [s1, s2], 2)
    @command_window.y = 56
  end
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  def update_command_selection
    @help_window.set_text("")
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        @command_window.active = false
        @dummy_window.visible = false
        @buy_window.active = true
        @buy_window.visible = true
        @buy_window.refresh
        @status_window.visible = true
      when 1
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_buy_selection
    @status_window.item = @buy_window.skill
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.skill
      @price = SKILL_SHOP.skill_price(@item.id)
      enabled = (@price <= $game_party.gold)
      if not enabled
        Sound.play_buzzer
      else
        Sound.play_decision
        show_target_window
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      @actor = $game_party.members[@target_window.index]
      can_learn = SKILL_SHOP.skill_buy(@actor.id)
      id = @item.id
      enabled = (can_learn.include?(id) and @actor.learn?(@item))
      if not enabled
        Sound.play_buzzer
      else
        learn_target(@item.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  def learn_target(skill_id)
    Sound.play_shop
    @actor.learn_skill(skill_id)
    $game_party.lose_gold(@price)
    @buy_window.refresh
    @gold_window.refresh
    @status_window.refresh
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def show_target_window
    @buy_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = width_remain
    @target_window.visible = true
    @target_window.active = true
    @target_window.index = 0
    @viewport.rect.set(0, 0, width_remain, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  def hide_target_window
    @buy_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @target_window.index =- 1
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
end


How to Use (Ver 3.1):

You will add "$skill_shop =[Id of Skill]"
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "[p-Price-]" for set Skill Price at Note in Skill Database.
Example : For set Price to 150

[p150]

You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor

[1,4],[2,3],

],

***How to use for Ver 1.0 , 2.0 and 3.0 was include in script.

Demo Ver 3.1
Thaicyberupload Hosting : http://www.thaicyberupload.com/get/VNDun0j6HF
MediaFire Hosting : http://www.mediafire.com/?hksjy2znnzb
Demo Ver 3.0 : http://www.mediafire.com/?hjdnjxivyon

Screen Shot :

Ver 1.0


Ver 2.0


This post has been edited by Nechi: Apr 6 2008, 08:19 PM


__________________________


Now, I 'm very busy.I'm work hard in the university. If you send me PM, sorry that I can't answer them at the moment.
Go to the top of the page
 
+Quote Post
   
 
Start new topic
Replies
Pepevago
post Nov 26 2011, 09:44 AM
Post #2



Group Icon

Group: Member
Posts: 1
Type: Scripter
RM Skill: Beginner




Thanks
Go to the top of the page
 
+Quote Post
   

Posts in this topic
- Nechi   Skill Shop for RMVX   Feb 25 2008, 06:23 AM
- - woratana   Looks good, nechi Can you get in detail about Pr...   Feb 25 2008, 07:08 PM
- - Nechi   This Line CODE0 => 100 Setting price for all s...   Feb 25 2008, 08:27 PM
- - Denko   Wow, very nice Nechi, this is an interesting scrip...   Feb 25 2008, 09:24 PM
- - Clord   Excellent. Level based skill giving is dull but t...   Feb 26 2008, 02:46 AM
- - sithious   This is SO awsome! Thank you verry much Its ex...   Feb 26 2008, 06:50 AM
- - Kira   Can you make a version of this for Xp? Can anyone?   Feb 26 2008, 02:04 PM
|- - Nechi   QUOTE (Kira @ Feb 26 2008, 01:11 PM) Can ...   Feb 26 2008, 03:58 PM
|- - jamiez   Good job and Thanks to you ! this is what i ...   Feb 27 2008, 02:19 PM
|- - Kira   QUOTE (Nechi @ Feb 26 2008, 06:05 PM) QUO...   Mar 1 2008, 09:18 AM
- - woratana   What do you think about Skill Sale shop?   Feb 27 2008, 03:48 PM
|- - Nechi   QUOTE (woratana @ Feb 27 2008, 02:55 PM) ...   Feb 27 2008, 04:18 PM
- - SeeYouAlways   Hi Nechi, do you think it is possible to put a lev...   Feb 27 2008, 05:40 PM
- - woratana   It will be great if you will do that Nechi~ @SYA...   Feb 27 2008, 05:42 PM
- - Nechi   Update 2.0 Version!! Can add Level require...   Feb 27 2008, 08:51 PM
- - woratana   What is the different between delete and leave?   Feb 27 2008, 09:06 PM
- - kageryuto   argh, i need a tutorial for this, please help   Mar 1 2008, 04:12 AM
- - D3wil666   i need this on xp and in ther need level requirem...   Mar 1 2008, 08:48 AM
- - SeeYouAlways   QUOTE (D3wil666 @ Mar 2 2008, 02:55 AM) i...   Mar 1 2008, 04:23 PM
- - Mech-Ah   I have a problem. When I copy this, I get them in ...   Mar 2 2008, 07:52 AM
|- - Ilikepie123   QUOTE (Mech-Ah @ Mar 2 2008, 07:06 A...   May 2 2008, 03:17 AM
- - SH!   It`s not working: Script''line 122:NoM...   Mar 2 2008, 08:07 AM
- - rwilsonjr   I had to make modifications to get this to work, b...   Mar 2 2008, 09:03 AM
- - Mech-Ah   I am interested in that script.   Mar 2 2008, 09:10 AM
- - isaacsol   Would it be possible for this to check the databas...   Mar 2 2008, 02:55 PM
- - BloodyChaos   OK I have 1 question I'm having trouble gettin...   Mar 2 2008, 03:45 PM
- - jackrider   Thats awesome!! good scripts!   Mar 4 2008, 03:23 AM
- - TiPere   Does anyone can help me please ? When I speak to t...   Mar 7 2008, 03:19 PM
- - Marc_Firewing   This has been racking my head for a long time now....   Mar 8 2008, 08:21 PM
- - Shrimpen91   I'm dumb, demo please.   Mar 10 2008, 01:41 PM
- - Nechi   Update Ver 3.0 has been Release, You can set some ...   Mar 11 2008, 09:01 AM
- - sasofrass   When I try to copy and paste it in to the scripts,...   Mar 11 2008, 10:02 AM
|- - Nechi   QUOTE (sasofrass @ Mar 12 2008, 12:09 AM)...   Mar 11 2008, 04:37 PM
- - Mech-Ah   V3.0 Error: " Script 'Skill Shop' li...   Mar 11 2008, 12:58 PM
- - Shrimpen91   I can't open the demo because ^   Mar 12 2008, 03:26 AM
|- - Nechi   QUOTE (Shrimpen91 @ Mar 12 2008, 05:33 PM...   Mar 12 2008, 04:42 AM
- - Shrimpen91   ahh! that explains it, i have v1.00 I know ...   Mar 12 2008, 05:01 AM
|- - Nechi   QUOTE (Shrimpen91 @ Mar 12 2008, 07:08 PM...   Mar 12 2008, 05:09 AM
- - Shrimpen91   I can start the demo now ;D and now I'm trying...   Mar 12 2008, 05:26 AM
|- - Nechi   QUOTE (Shrimpen91 @ Mar 12 2008, 07:33 PM...   Mar 12 2008, 06:00 AM
- - Shrimpen91   I fully understand how the script works now(I thin...   Mar 12 2008, 06:39 AM
- - Nechi   Fixed Bug 3.0 in 3.1 MediaFire Hosting 's Dem...   Mar 13 2008, 04:56 AM
|- - Jensen   Error on line 164: elsif @le_skills.include?(...   Mar 13 2008, 10:34 AM
|- - Nechi   QUOTE (Jensen @ Mar 14 2008, 12:41 AM) Er...   Mar 13 2008, 09:06 PM
- - Mech-Ah   ERROR: I try to open a menu and I get this: ...   Mar 14 2008, 05:41 AM
- - woratana   The script may screwed when you copy from codebox,...   Mar 14 2008, 08:33 AM
|- - Nechi   QUOTE (woratana @ Mar 14 2008, 10:40 PM) ...   Mar 14 2008, 09:12 AM
- - piplup_fan   Dude... i just tried the demo and that is prety im...   Mar 14 2008, 04:30 PM
- - Mech-Ah   Okay, I copied the EXACT script from the demo, but...   Mar 15 2008, 12:42 AM
|- - Nechi   QUOTE (Mech-Ah @ Mar 15 2008, 02:49 ...   Mar 15 2008, 06:16 AM
- - .Zakuma   Is it possible to have an add-on so that you can g...   Mar 16 2008, 09:01 AM
|- - Nechi   QUOTE (.Zakuma @ Mar 16 2008, 11:08 PM) I...   Mar 19 2008, 08:44 AM
- - LostFan:4-8-15-16-23-42   I'm sorry I'm new to scripts. I have no id...   Mar 20 2008, 10:43 AM
- - onimusuko   hey, how about hiding the actor name that cant lea...   Mar 22 2008, 01:14 AM
- - epfrndz   I don't get the part on how "call" s...   Mar 26 2008, 03:59 AM
- - Diogotav   First hi im new here and next i got a prob i never...   Mar 26 2008, 11:09 AM
- - puisihatiku   Hello, may I ask if this script is compatible for ...   Mar 31 2008, 02:58 AM
- - Dark Koji   This script is for VX. I believed Nechi made a si...   Apr 2 2008, 08:31 AM
- - Twilight27   Okay, this is the error I (and a few others) are e...   Apr 2 2008, 12:35 PM
- - Nechi   You continue with your game svae before paste this...   Apr 3 2008, 09:18 AM
|- - Bymus   I don't understand the instructions at all... ...   Apr 4 2008, 09:19 AM
|- - Nechi   QUOTE (Bymus @ Apr 4 2008, 11:33 PM) Can ...   Apr 6 2008, 08:12 PM
- - matty0828   I'm having the same problem as Bymus - with bo...   Apr 4 2008, 07:52 PM
- - blooDhazE43   when im reaching a level i get this error ????? ...   Apr 6 2008, 02:00 AM
- - ell   Hi i have a problem . I have copied and pasted the...   Apr 10 2008, 12:50 PM
- - Hirezi   This is very nice script! and very easy to use...   Apr 17 2008, 10:46 PM
- - as12df34   Sorry if this has been explained but how do you ed...   Apr 18 2008, 07:01 PM
- - vulgomatic   Was wondering if there was any way that you could ...   May 1 2008, 04:16 PM
- - Beecheese   Just wanted to chime in and say this is a great sc...   May 12 2008, 02:27 PM
- - The Wizard 007   Nice script. In a future version I think it would...   May 13 2008, 02:35 PM
- - demonicblade   Sounds nice, and I'm just about to test it out...   May 15 2008, 07:13 AM
- - Kira   This is so useful.   May 17 2008, 10:15 AM
- - shagnasty   Can somebody please explain to me how to change th...   May 17 2008, 07:30 PM
- - Beecheese   ^Go to the Skill section in Database, select the s...   May 19 2008, 01:46 PM
- - shagnasty   thanx. I didnt even see the notes part of it.   May 19 2008, 03:32 PM
- - wsensor   question since some people mentioned making it cos...   May 19 2008, 05:46 PM
- - drebenk   OK I have problem with this script ver. 3.1. Here ...   Jun 23 2008, 10:11 AM
- - jake.29.9   Im not sure if it been said but. How can i get a...   Jul 17 2008, 04:54 PM
- - Mufalmar   These instructions confuse me.. -.- What i want t...   Jul 17 2008, 10:30 PM
|- - Khandrak   QUOTE (Mufalmar @ Jul 18 2008, 01:52 AM) ...   Aug 8 2008, 11:33 AM
- - jake.29.9   Dont worry ive done it and it works. Great Script   Jul 19 2008, 03:28 AM
- - Khandrak   From what I've noticed: This script is incomp...   Aug 8 2008, 06:10 PM
- - Selacius   Wondering if you could modify this such that in th...   Sep 10 2008, 08:12 AM
- - muffin1232   HI I'm having trouble with this script. I...   Oct 18 2008, 05:20 AM
- - Mems   Ah, very nice script.   May 19 2009, 10:10 AM
- - FireRMVX   Hey can u make a script of how to go over the limi...   Jun 20 2009, 08:43 PM
- - ThaSlein   I've got the script, but I miss some files. ...   Jul 28 2009, 09:41 AM
- - mudducky   @ThaSlein That's not a problem with the script...   Jul 28 2009, 10:15 AM
|- - ThaSlein   QUOTE (mudducky @ Jul 28 2009, 11:15 AM) ...   Jul 29 2009, 12:23 AM
- - kinan   Nee how about instead of using money to buy skills...   Jul 28 2009, 11:16 PM
|- - Shanghai   QUOTE (kinan @ Jul 28 2009, 11:16 PM) Nee...   Jul 29 2009, 04:09 AM
|- - kinan   QUOTE (Shanghai @ Jul 29 2009, 03:09 PM) ...   Jul 29 2009, 05:39 AM
- - st3rnb0rn   Just a little heads up; in the 3.1 script it says...   Jul 30 2009, 04:36 AM
- - Krosbryd   Necrobump, I know, but I have a problem here. Oka...   Sep 22 2010, 02:20 PM
- - martyjr2008   If the skill shop script doesn't work there is...   Oct 2 2010, 08:41 AM
- - chaco   I really needed something like this in my game...   Nov 26 2011, 03:55 AM
- - chaco   I had to remove a few random things from the scrip...   Nov 26 2011, 04:01 AM
- - Pepevago   Thanks   Nov 26 2011, 09:44 AM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 24th May 2013 - 03:48 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker