[RESOLVED] Skill shop, with different currency

Started by Hellfire Dragon, June 06, 2009, 12:01:15 pm

Previous topic - Next topic

Hellfire Dragon

June 06, 2009, 12:01:15 pm Last Edit: June 11, 2009, 12:37:14 pm by Hellfire Dragon
So the only skill shop I could find was SephirothSpawns and that needs the SDK...
So I want a shop that you can buy skills in. I need so some skills can only be learned by certain classes and you buy the skills using a seperate currency other than the default, this currency increases after an enemy is killed so I need it to increase differently for each enemy.

I think the currency and increasing based on what enemy is killed would probably be the hardest.

ty to anyone who can do this for me :^_^':

And one last thing, I want to bw able to set up what skills are sold in what shop

Jackolas

i have a skill shop system i use myself.
its a litle bid edited for easyer use.
Spoiler: ShowHide

#==============================================================================
# Skill Shop for RMXP
#==============================================================================
# By Nechigawara Sanzenin
# Edit by jackolas with thanks to WcW
# WARNING!! : This script can use on RPG Maker XP Only!! (VX Not Support)
#==============================================================================
# Buy Skill Option For RMXP
#==============================================================================
=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
 }
 # class Data
 SKILL_BUY = {
 # Add what skill a Class can buy Here
 # [ID of skill,Level]
 
 1 => [
 
 [1,4],[2,3],[3,1],[7,1],
 
 ],
 
 2 => [
 
 [1,4],[2,3],[3,1],[7,5],
 
 ],
 
 # 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.id)
   if learn
     return false
   else
     return true
   end
 end
end
#==============================================================================
#class Window_Skill_ShopCommand
#==============================================================================
class Window_Skill_ShopCommand < Window_Selectable
 #--------------------------------------------------------------------------
 def initialize
   super(0, 64, 480, 64)
   self.contents = Bitmap.new(width - 32, height - 32)
   @item_max = 2
   @column_max = 2
   s1 = SKILL_SHOP::Teach
   s2 = SKILL_SHOP::Cancel
   @commands = [s1, s2]
   refresh
   self.index = 0
 end
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   for i in 0...@item_max
     draw_item(i)
   end
 end
 #--------------------------------------------------------------------------
 def draw_item(index)
   x = 4 + index * 240
   self.contents.draw_text(x, 0, 128, 32, @commands[index])
 end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
 #--------------------------------------------------------------------------
 def initialize(shop_goods)
   super(0, 128, 368, 352)
   @skill_shop_goods = $skill_shop
   refresh
   self.index = 0
 end
 #--------------------------------------------------------------------------
 def skill
   return @data[self.index]
 end
 #--------------------------------------------------------------------------
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 0...@skill_shop_goods.size
     skill = $data_skills[@skill_shop_goods[i]]
     if skill != nil
       @data.push(skill)
     end
   end
   # If the number of items is not 0, it draws up bit map, drawing all item
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 def draw_item(index)
   skill = @data[index]
   # Acquiring the frequency of possession of the item
   price = SKILL_SHOP.skill_price(skill.id)
   enabled = (price <= $game_party.gold)
   # If price is not below the money in hand, at the same time the frequency of possession 99, usually in letter color
   # So if is not, it sets to invalid letter color
   if enabled
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4
   y = index * 32
   rect = Rect.new(x, y, self.width - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   bitmap = RPG::Cache.icon(skill.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)
   self.contents.draw_text(x + 240, y, 88, 32, price.to_s, 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
   super(368, 128, 272, 352)
   self.contents = Bitmap.new(width - 32, height - 32)
   @item = nil
   refresh
   self.active = false
   self.index = -1
 end
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   if @item == nil
     return
   end
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, self.width - 32, 32, SKILL_SHOP::How_Learn)
   self.contents.font.color = normal_color
   # Equipment supplementary information
   for i in 0...$game_party.actors.size
     # Acquiring the actor
     can = false
     lv = false
     ac_lv = 0
     actor = $game_party.actors[i]
     actorz = $game_party.actors[i].class_id
     can_learn = SKILL_SHOP.skill_buy(actorz)
     id = @item.id
     for e in 0...can_learn.size
       if can_learn[e][0] == id
         can = true
         if can_learn[e][1] <= actor.level
           lv = true
         else
           lv = false
           ac_lv = can_learn[e][1]
         end
         break
       else
         can = false
       end
     end
     enabled = (can and lv and actor.learn?(@item))
     # If equipment possibility if usually in letter color, the impossibility, it sets to invalid letter color
     if enabled
       self.contents.font.color = normal_color
     else
       self.contents.font.color = disabled_color
     end
     #Draw Cha Pic
     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
     cw = bitmap.rect.width / 4
     ch = bitmap.rect.height / 4
     src_rect = Rect.new(0, 0, cw, ch)
     cx = contents.text_size(actor.name).width
     self.contents.blt(cx + 10, 64 + 64 * i - 10, bitmap, src_rect)
     # Drawing the name of the actor
     self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
     # Check Skill
     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
     # Drawing the item
     self.contents.draw_text(124, 64 + 64 * i, 112, 32, text, 2)
   end
 end
 #--------------------------------------------------------------------------
 def item=(item)
   if @item != item
     @item = item
     refresh
   end
 end
 #--------------------------------------------------------------------------
 def update_cursor_rect
   # Cursor position as for -1 all selection, -2 below independence selection (user himself)
   if @index < 0
     self.cursor_rect.empty
   else
     self.cursor_rect.set(0, 62 + @index * 64 - 10, self.width - 32, 50)
   end
 end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop
 #--------------------------------------------------------------------------
 def main
   # Drawing up the help window
   @help_window = Window_Help.new
   # Drawing up the command window
   @command_window = Window_Skill_ShopCommand.new
   # Drawing up the Goldwyn dough
   @gold_window = Window_Gold.new
   @gold_window.x = 480
   @gold_window.y = 64
   # Drawing up the dummy window
   @dummy_window = Window_Base.new(0, 128, 640, 352)
   # Drawing up the purchase window
   @buy_window = Window_Skill_ShopBuy.new($game_temp.shop_goods)
   @buy_window.active = false
   @buy_window.visible = false
   @buy_window.help_window = @help_window
   # Drawing up the status window
   @status_window = Window_Skill_ShopStatus.new
   @status_window.visible = false
   @status_window.active
   # Transition execution
   Graphics.transition
   # Main loop
   loop do
     # Renewing the game picture
     Graphics.update
     # Updating the information of input
     Input.update
     # Frame renewal
     update
     # When the picture changes, discontinuing the loop
     if $scene != self
       break
     end
   end
   # Transition preparation
   Graphics.freeze
   # Releasing the window
   @help_window.dispose
   @command_window.dispose
   @gold_window.dispose
   @dummy_window.dispose
   @buy_window.dispose
   @status_window.dispose
 end
 #--------------------------------------------------------------------------
 def update
   # Renewing the window
   @help_window.update
   @command_window.update
   @gold_window.update
   @dummy_window.update
   @buy_window.update
   @status_window.update
   # When the command window is active,: Update_command is called
   if @command_window.active
     update_command
     return
   end
   # When the purchase window is active,: Update_buy is called
   if @buy_window.active
     update_buy
     return
   end
   # When the target window is active,: Update_target is called
   if @status_window.active
     update_target
     return
   end
 end
 #--------------------------------------------------------------------------
 def update_command
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # Change to map picture
     $scene = Scene_Map.new
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     # Eliminating the help text
     @help_window.set_text("")
     # It diverges at cursor position of the command window
     case @command_window.index
     when 0  # It purchases
       # Performing decision SE
       $game_system.se_play($data_system.decision_se)
       # State of window to purchase mode
       @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  # It stops
       # Performing decision SE
       $game_system.se_play($data_system.decision_se)
       # Change to map picture
       $scene = Scene_Map.new
     end
     return
   end
 end
 #--------------------------------------------------------------------------
 def update_buy
   # Setting the item of the status window
   @status_window.item = @buy_window.skill
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # State of window to early mode
     @command_window.active = true
     @dummy_window.visible = true
     @buy_window.active = false
     @buy_window.visible = false
     @status_window.visible = false
     @status_window.item = nil
     # Eliminating the help text
     @help_window.set_text("")
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     # Acquiring the item
     @item = @buy_window.skill
     @price = SKILL_SHOP.skill_price(@item.id)
     enabled = (@price <= $game_party.gold)
     # When the item is invalid, or when price it is on from the money in hand
     unless  enabled
       # Performing buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Performing decision SE
     $game_system.se_play($data_system.decision_se)
     @buy_window.active = false
     @status_window.active = true
     @status_window.index = 0
   end
 end
 #--------------------------------------------------------------------------
 def update_target
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # Eliminating the target window
     @buy_window.active = true
     @status_window.index =- 1
     @status_window.active = false
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     @actor = $game_party.actors[@status_window.index]
     @actorz = $game_party.actors[@status_window.index].class_id
     can = false
     lv = false
     can_learn = SKILL_SHOP.skill_buy(@actorz)
     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))
     # When with SP and so on is cut off and it becomes not be able to use
     unless enabled
       # Performing buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Performing shop SE
     $game_system.se_play($data_system.shop_se)
     @actor.learn_skill(@item.id)
     $game_party.lose_gold(@price)
     @buy_window.refresh
     @gold_window.refresh
     @status_window.refresh
     @buy_window.active = true
     @status_window.index =- 1
     @status_window.active = false
    end
 end
end


the good side is that its not using SDK
the bad is that it uses the normal gold to buy skills.
but think it can be changed without to much problems

G_G

Jackolas is it possible to change class to actors?

Jackolas

June 07, 2009, 09:29:01 am #3 Last Edit: June 07, 2009, 09:32:49 am by Jackolas
ofc it is

Spoiler: ShowHide
#==============================================================================
# Skill Shop for RMXP
#==============================================================================
# By Nechigawara Sanzenin
# Edit by jackolas with thanks to WcW
# WARNING!! : This script can use on RPG Maker XP Only!! (VX Not Support)
#==============================================================================
# Buy Skill Option For RMXP
#==============================================================================
=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],[7,1],
 
 ],
 
 2 => [
 
 [1,4],[2,3],[3,1],[7,5],
 
 ],
 
 # 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.id)
   if learn
     return false
   else
     return true
   end
 end
end
#==============================================================================
#class Window_Skill_ShopCommand
#==============================================================================
class Window_Skill_ShopCommand < Window_Selectable
 #--------------------------------------------------------------------------
 def initialize
   super(0, 64, 480, 64)
   self.contents = Bitmap.new(width - 32, height - 32)
   @item_max = 2
   @column_max = 2
   s1 = SKILL_SHOP::Teach
   s2 = SKILL_SHOP::Cancel
   @commands = [s1, s2]
   refresh
   self.index = 0
 end
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   for i in 0...@item_max
     draw_item(i)
   end
 end
 #--------------------------------------------------------------------------
 def draw_item(index)
   x = 4 + index * 240
   self.contents.draw_text(x, 0, 128, 32, @commands[index])
 end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
 #--------------------------------------------------------------------------
 def initialize(shop_goods)
   super(0, 128, 368, 352)
   @skill_shop_goods = $skill_shop
   refresh
   self.index = 0
 end
 #--------------------------------------------------------------------------
 def skill
   return @data[self.index]
 end
 #--------------------------------------------------------------------------
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 0...@skill_shop_goods.size
     skill = $data_skills[@skill_shop_goods[i]]
     if skill != nil
       @data.push(skill)
     end
   end
   # If the number of items is not 0, it draws up bit map, drawing all item
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 def draw_item(index)
   skill = @data[index]
   # Acquiring the frequency of possession of the item
   price = SKILL_SHOP.skill_price(skill.id)
   enabled = (price <= $game_party.gold)
   # If price is not below the money in hand, at the same time the frequency of possession 99, usually in letter color
   # So if is not, it sets to invalid letter color
   if enabled
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4
   y = index * 32
   rect = Rect.new(x, y, self.width - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   bitmap = RPG::Cache.icon(skill.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)
   self.contents.draw_text(x + 240, y, 88, 32, price.to_s, 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
   super(368, 128, 272, 352)
   self.contents = Bitmap.new(width - 32, height - 32)
   @item = nil
   refresh
   self.active = false
   self.index = -1
 end
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   if @item == nil
     return
   end
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, self.width - 32, 32, SKILL_SHOP::How_Learn)
   self.contents.font.color = normal_color
   # Equipment supplementary information
   for i in 0...$game_party.actors.size
     # Acquiring the actor
     can = false
     lv = false
     ac_lv = 0
     actor = $game_party.actors[i]
     can_learn = SKILL_SHOP.skill_buy(actor.id)
     id = @item.id
     for e in 0...can_learn.size
       if can_learn[e][0] == id
         can = true
         if can_learn[e][1] <= actor.level
           lv = true
         else
           lv = false
           ac_lv = can_learn[e][1]
         end
         break
       else
         can = false
       end
     end
     enabled = (can and lv and actor.learn?(@item))
     # If equipment possibility if usually in letter color, the impossibility, it sets to invalid letter color
     if enabled
       self.contents.font.color = normal_color
     else
       self.contents.font.color = disabled_color
     end
     #Draw Cha Pic
     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
     cw = bitmap.rect.width / 4
     ch = bitmap.rect.height / 4
     src_rect = Rect.new(0, 0, cw, ch)
     cx = contents.text_size(actor.name).width
     self.contents.blt(cx, 64 + 64 * i, bitmap, src_rect)
     # Drawing the name of the actor
     self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
     # Check Skill
     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
     # Drawing the item
     self.contents.draw_text(124, 64 + 64 * i, 112, 32, text, 2)
   end
 end
 #--------------------------------------------------------------------------
 def item=(item)
   if @item != item
     @item = item
     refresh
   end
 end
 #--------------------------------------------------------------------------
 def update_cursor_rect
   # Cursor position as for -1 all selection, -2 below independence selection (user himself)
   if @index < 0
     self.cursor_rect.empty
   else
     self.cursor_rect.set(0, 62 + @index * 64, self.width - 32, 50)
   end
 end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop
 #--------------------------------------------------------------------------
 def main
   # Drawing up the help window
   @help_window = Window_Help.new
   # Drawing up the command window
   @command_window = Window_Skill_ShopCommand.new
   # Drawing up the Goldwyn dough
   @gold_window = Window_Gold.new
   @gold_window.x = 480
   @gold_window.y = 64
   # Drawing up the dummy window
   @dummy_window = Window_Base.new(0, 128, 640, 352)
   # Drawing up the purchase window
   @buy_window = Window_Skill_ShopBuy.new($game_temp.shop_goods)
   @buy_window.active = false
   @buy_window.visible = false
   @buy_window.help_window = @help_window
   # Drawing up the status window
   @status_window = Window_Skill_ShopStatus.new
   @status_window.visible = false
   @status_window.active
   # Transition execution
   Graphics.transition
   # Main loop
   loop do
     # Renewing the game picture
     Graphics.update
     # Updating the information of input
     Input.update
     # Frame renewal
     update
     # When the picture changes, discontinuing the loop
     if $scene != self
       break
     end
   end
   # Transition preparation
   Graphics.freeze
   # Releasing the window
   @help_window.dispose
   @command_window.dispose
   @gold_window.dispose
   @dummy_window.dispose
   @buy_window.dispose
   @status_window.dispose
 end
 #--------------------------------------------------------------------------
 def update
   # Renewing the window
   @help_window.update
   @command_window.update
   @gold_window.update
   @dummy_window.update
   @buy_window.update
   @status_window.update
   # When the command window is active,: Update_command is called
   if @command_window.active
     update_command
     return
   end
   # When the purchase window is active,: Update_buy is called
   if @buy_window.active
     update_buy
     return
   end
   # When the target window is active,: Update_target is called
   if @status_window.active
     update_target
     return
   end
 end
 #--------------------------------------------------------------------------
 def update_command
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # Change to map picture
     $scene = Scene_Map.new
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     # Eliminating the help text
     @help_window.set_text("")
     # It diverges at cursor position of the command window
     case @command_window.index
     when 0  # It purchases
       # Performing decision SE
       $game_system.se_play($data_system.decision_se)
       # State of window to purchase mode
       @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  # It stops
       # Performing decision SE
       $game_system.se_play($data_system.decision_se)
       # Change to map picture
       $scene = Scene_Map.new
     end
     return
   end
 end
 #--------------------------------------------------------------------------
 def update_buy
   # Setting the item of the status window
   @status_window.item = @buy_window.skill
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # State of window to early mode
     @command_window.active = true
     @dummy_window.visible = true
     @buy_window.active = false
     @buy_window.visible = false
     @status_window.visible = false
     @status_window.item = nil
     # Eliminating the help text
     @help_window.set_text("")
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     # Acquiring the item
     @item = @buy_window.skill
     @price = SKILL_SHOP.skill_price(@item.id)
     enabled = (@price <= $game_party.gold)
     # When the item is invalid, or when price it is on from the money in hand
     unless  enabled
       # Performing buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Performing decision SE
     $game_system.se_play($data_system.decision_se)
     @buy_window.active = false
     @status_window.active = true
     @status_window.index = 0
   end
 end
 #--------------------------------------------------------------------------
 def update_target
   # The B when button is pushed
   if Input.trigger?(Input::B)
     # Performing cancellation SE
     $game_system.se_play($data_system.cancel_se)
     # Eliminating the target window
     @buy_window.active = true
     @status_window.index =- 1
     @status_window.active = false
     return
   end
   # When C button is pushed
   if Input.trigger?(Input::C)
     @actor = $game_party.actors[@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))
     # When with SP and so on is cut off and it becomes not be able to use
     unless enabled
       # Performing buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Performing shop SE
     $game_system.se_play($data_system.shop_se)
     @actor.learn_skill(@item.id)
     $game_party.lose_gold(@price)
     @buy_window.refresh
     @gold_window.refresh
     @status_window.refresh
     @buy_window.active = true
     @status_window.index =- 1
     @status_window.active = false
    end
 end
end


all done... now its based on actors and not on the classes.
I used it with CLasses because I use legacyblades (hope i spell it correct) class changer

G_G

It doesnt matter anyways i ended up making my own skill shop script xD

Jackolas


Hellfire Dragon

June 07, 2009, 09:47:16 am #6 Last Edit: June 07, 2009, 09:48:58 am by Hellfire Dragon
That's awesoem Jackolas :D Though I still need the other currency, any up for an edit?

G_G

June 07, 2009, 09:50:53 am #7 Last Edit: June 07, 2009, 09:51:56 am by game_guy
how many currencies do you have?

Ok what currecny are you using? or what extra one do you want? I can try...

Hellfire Dragon

Just 2, the default one for normal shops and a new one for skill shops. I don't have a name for it yet :P
I don't think that would matters.

Jackolas


Hellfire Dragon

Bump,

Anyone for the second currency edit?

Seox

Quote from: Hellfire Dragon on June 09, 2009, 05:47:50 am
Bump,

Anyone for the second currency edit?


Ok, I really have NO IDEA if I'll be able to - the currency itself should be easy, but enemy drop amounts would be harder. However, lemme look through my scripts and see if I can get the gist of how to do it. If I can, I'll do it ^_^
... (<<<<<<<<<<<<<<< TEH DOTS OF DOOM. Hey, kinda catchy. :naughty:)

G_G


Hellfire Dragon


G_G

HD I'm done with it. I'm only giving this version to you ok? I might release it later but dont give it out. I'll PM it to you right now. Its got a demo.


G_G

No problem HD. So does it work the way you want it to? And do you understand the configuration of it?