Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

5 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> 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
   
woratana
post Feb 25 2008, 07:08 PM
Post #2


Looking for scripter to hire? PM me *O*
Group Icon

Group: +Gold Member
Posts: 1,038
Type: Scripter
RM Skill: Undisclosed




Looks good, nechi smile.gif

Can you get in detail about Price Data? I think somebody (like me) may not get how to use it ~^^


__________________________
Check out my NEW blog!!!



MVP (Most Valuable Poster) Award 2008


Go to the top of the page
 
+Quote Post
   
Nechi
post Feb 25 2008, 08:27 PM
Post #3


Certamen Promus
Group Icon

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




This Line
CODE
0 => 100

Setting price for all skills that no set a price.(Standard price)
CODE
1 => 150

Setting price to 150 for skill id 1.


__________________________


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
   
Denko
post Feb 25 2008, 09:24 PM
Post #4


Level 4
Group Icon

Group: Member
Posts: 48
Type: None
RM Skill: Undisclosed




Wow, very nice Nechi, this is an interesting script.
Seems useful. Easy to use, too.
Go to the top of the page
 
+Quote Post
   
Clord
post Feb 26 2008, 02:46 AM
Post #5


General Bastardo hates your guts!
Group Icon

Group: Revolutionary
Posts: 217
Type: None
RM Skill: Undisclosed




Excellent.

Level based skill giving is dull but this system give some "choices" to player.


__________________________
Go to the top of the page
 
+Quote Post
   
sithious
post Feb 26 2008, 06:50 AM
Post #6


Level 12
Group Icon

Group: Revolutionary
Posts: 204
Type: Artist
RM Skill: Skilled




This is SO awsome! Thank you verry much Its exactly what I needed:)


__________________________


Dont hate me cos i spell bad.
Go to the top of the page
 
+Quote Post
   
Puppet Of Fate
post Feb 26 2008, 02:04 PM
Post #7


Please join my site!
Group Icon

Group: Revolutionary
Posts: 675
Type: Mapper
RM Skill: Advanced




Can you make a version of this for Xp? Can anyone?


__________________________
Go to the top of the page
 
+Quote Post
   
Nechi
post Feb 26 2008, 03:58 PM
Post #8


Certamen Promus
Group Icon

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




QUOTE (Kira @ Feb 26 2008, 01:11 PM) *
Can you make a version of this for Xp? Can anyone?

If you want it, I will convert for you soon.
Wait a little,Kira-kun.^^


__________________________


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
   
jamiez
post Feb 27 2008, 02:19 PM
Post #9


Level 1
Group Icon

Group: Member
Posts: 6
Type: Event Designer
RM Skill: Beginner




Good job and Thanks to you ! thumbsup.gif
this is what i need....http://rpgrevolution.com/forums/style_emoticons/default/laugh.gif
http://rpgrevolution.com/forums/style_emot...fault/laugh.gif
Go to the top of the page
 
+Quote Post
   
woratana
post Feb 27 2008, 03:48 PM
Post #10


Looking for scripter to hire? PM me *O*
Group Icon

Group: +Gold Member
Posts: 1,038
Type: Scripter
RM Skill: Undisclosed




What do you think about Skill Sale shop? tongue.gif


__________________________
Check out my NEW blog!!!



MVP (Most Valuable Poster) Award 2008


Go to the top of the page
 
+Quote Post
   
Nechi
post Feb 27 2008, 04:18 PM
Post #11


Certamen Promus
Group Icon

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




QUOTE (woratana @ Feb 27 2008, 02:55 PM) *
What do you think about Skill Sale shop? tongue.gif

Are you want that wor-kun?


__________________________


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
   
SeeYouAlways
post Feb 27 2008, 05:40 PM
Post #12


Demented Moogle
Group Icon

Group: Banned
Posts: 1,130
Type: None
RM Skill: Undisclosed




Hi Nechi, do you think it is possible to put a level requirement for the skills that I am allowed to purchase?

For example, my main character needs to be level 4 to learn a particular skill.

Thank you in advance!


__________________________
Go to the top of the page
 
+Quote Post
   
woratana
post Feb 27 2008, 05:42 PM
Post #13


Looking for scripter to hire? PM me *O*
Group Icon

Group: +Gold Member
Posts: 1,038
Type: Scripter
RM Skill: Undisclosed




It will be great if you will do that tongue.gif Nechi~

@SYA
I agree with that~


__________________________
Check out my NEW blog!!!



MVP (Most Valuable Poster) Award 2008


Go to the top of the page
 
+Quote Post
   
Nechi
post Feb 27 2008, 08:51 PM
Post #14


Certamen Promus
Group Icon

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




Update 2.0 Version!!
Can add Level requirement now!!
QUOTE (woratana @ Feb 27 2008, 04:49 PM) *
It will be great if you will do that tongue.gif Nechi~

I can make them but, after sell skill. The skill is delete or leave?


__________________________


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
   
woratana
post Feb 27 2008, 09:06 PM
Post #15


Looking for scripter to hire? PM me *O*
Group Icon

Group: +Gold Member
Posts: 1,038
Type: Scripter
RM Skill: Undisclosed




What is the different between delete and leave? tongue.gif


__________________________
Check out my NEW blog!!!



MVP (Most Valuable Poster) Award 2008


Go to the top of the page
 
+Quote Post
   
kageryuto
post Mar 1 2008, 04:12 AM
Post #16


Level 2
Group Icon

Group: Member
Posts: 15
Type: None
RM Skill: Undisclosed




argh, i need a tutorial for this, please help
Go to the top of the page
 
+Quote Post
   
D3wil666
post Mar 1 2008, 08:48 AM
Post #17


Level 3
Group Icon

Group: Member
Posts: 44
Type: None
RM Skill: Beginner




i need this on xp

and in ther need level requirement
Go to the top of the page
 
+Quote Post
   
Puppet Of Fate
post Mar 1 2008, 09:18 AM
Post #18


Please join my site!
Group Icon

Group: Revolutionary
Posts: 675
Type: Mapper
RM Skill: Advanced




QUOTE (Nechi @ Feb 26 2008, 06:05 PM) *
QUOTE (Kira @ Feb 26 2008, 01:11 PM) *
Can you make a version of this for Xp? Can anyone?

If you want it, I will convert for you soon.
Wait a little,Kira-kun.^^


Okay take as long as ya need. I just need it for my game.


__________________________
Go to the top of the page
 
+Quote Post
   
SeeYouAlways
post Mar 1 2008, 04:23 PM
Post #19


Demented Moogle
Group Icon

Group: Banned
Posts: 1,130
Type: None
RM Skill: Undisclosed




QUOTE (D3wil666 @ Mar 2 2008, 02:55 AM) *
i need this on xp

and in ther need level requirement


QUOTE (Kira @ Mar 2 2008, 03:25 AM) *
QUOTE (Nechi @ Feb 26 2008, 06:05 PM) *
QUOTE (Kira @ Feb 26 2008, 01:11 PM) *
Can you make a version of this for Xp? Can anyone?

If you want it, I will convert for you soon.
Wait a little,Kira-kun.^^


Okay take as long as ya need. I just need it for my game.


Nechi has already made one for RPG Maker XP.

http://www.rpgrevolution.com/forums/index.php?showtopic=9586


__________________________
Go to the top of the page
 
+Quote Post
   
Mech-Ah
post Mar 2 2008, 07:52 AM
Post #20


Level 2
Group Icon

Group: Member
Posts: 25
Type: None
RM Skill: Undisclosed




I have a problem. When I copy this, I get them in one line. So I can't use it... and I don't want to spend hours correcting it.
Go to the top of the page
 
+Quote Post
   

5 Pages V   1 2 3 > » 
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: 25th May 2013 - 02:17 AM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker