How to display skills that are attached to equipment in the equipment menu?

Joined
Jan 25, 2022
Messages
24
Reaction score
37
First Language
English
Primarily Uses
RMVXA
In my game, your party members get new skills by equipping special "packs" of skills that take the form of an equippable item. I'd like to display those skills in a window in the equip menu, so players can easily see what skills are associated with the pack they're equipping.
 

JacSkulls

Veteran
Veteran
Joined
May 4, 2020
Messages
225
Reaction score
82
First Language
English
Primarily Uses
RMMZ
First of all, go to Weapons.
1652897766321.png


Then click on Skill > Add Skill
You need to also add the Skill Type.

1652897812259.png

Should start seeing this.
1652897928341.png

EDIT:
Yes, you can do the same for Armor as well.
1652898079529.png
 

BCj

Veteran
Veteran
Joined
Jun 19, 2014
Messages
1,905
Reaction score
1,153
First Language
Dutch
Primarily Uses
N/A
Something like shown in this screenshot?

Except this works with AP, so, not quite sure ift hat's what you'd want.
 
Joined
Jan 25, 2022
Messages
24
Reaction score
37
First Language
English
Primarily Uses
RMVXA
Joined
Jan 25, 2022
Messages
24
Reaction score
37
First Language
English
Primarily Uses
RMVXA
Something like shown in this screenshot?

Except this works with AP, so, not quite sure ift hat's what you'd want.
this is pretty much what I was looking for, except for the AP stuff lol. Thanks, I'll look into this though to see if I can mess with it and remove the AP bar.
 
  • Like
Reactions: BCj

Roninator2

Gamer
Veteran
Joined
May 22, 2016
Messages
4,131
Reaction score
1,109
First Language
English
Primarily Uses
RMVXA
except for the AP stuff lol
Here is a mod of Fomar's Equipment skills script.
No Ap.
Ruby:
=begin
Equipment Skills System Script
by Fomar0153
Mod by Roninator2
Version 1.1.1
----------------------
Notes
----------------------
If using my Custom Equipment Slots script then
make sure this script is above the Equipment Slots Script
and make sure you have the compatability patch.
Allows learning of skills by equipment with the
option to learn skills pernamently.
----------------------
Instructions
----------------------
Then follow the instructions below about how to add skills
to weapons and armor.
----------------------
Change Log
----------------------
1.0 -> 1.1 Fixed a bug which caused skills learnt from
           armour to not display they were learnt.
1.1 -> 1.1.1 Removed AP system
----------------------
Known bugs
----------------------
None
=end

module Equipment_Skills
 
  Weapons = []
  # Add weapon skills in this format
  # Weapons[weapon_id] = [skillid1, skillid2]
  Weapons[1] = [8]
 
  Armors = []
  # Add weapon skills in this format
  # Armors[armor_id] = [skillid1, skillid2]
  Armors[3] = [9]
 
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● Rewrites change_equip
  #--------------------------------------------------------------------------
  def change_equip(slot_id, item)
    return unless trade_item_with_party(item, equips[slot_id])
    return if item && equip_slots[slot_id] != item.etype_id
    @equips[slot_id].object = item
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Aliases refresh
  #--------------------------------------------------------------------------
  alias eqskills_refresh refresh
  def refresh
    eqskills_refresh
    for item in self.equips
      if item.is_a?(RPG::Weapon)
        unless Equipment_Skills::Weapons[item.id] == nil
          for skill in Equipment_Skills::Weapons[item.id]
            learn_skill(skill)
          end
        end
      end
      if item.is_a?(RPG::Armor)
        unless Equipment_Skills::Armors[item.id] == nil
          for skill in Equipment_Skills::Armors[item.id]
            learn_skill(skill)
          end
        end
      end
    end
    # relearn any class skills you may have forgotten
    self.class.learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level <= @level
    end
  end
end

class Window_EquipItem < Window_ItemList
  #--------------------------------------------------------------------------
  # ● Rewrites col_max
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
  #--------------------------------------------------------------------------
  # ● Aliases update_help
  #--------------------------------------------------------------------------
  alias eqskills_update_help update_help
  def update_help
    eqskills_update_help
    if @actor && @status_window
      @status_window.refresh(item)
    end
  end
end

class Scene_Equip < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● Rewrites create_item_window
  #--------------------------------------------------------------------------
  alias eqskills_create_item_window create_item_window
  def create_item_window
    wx = @status_window.width # Edited line if you need to merge
    wy = @slot_window.y + @slot_window.height
    ww = @slot_window.width  # Edited line if you need to merge
    wh = Graphics.height - wy
    @item_window = Window_EquipItem.new(wx, wy, ww, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.status_window = @status_window
    @item_window.actor = @actor
    @item_window.set_handler(:ok,    method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @slot_window.item_window = @item_window
  end
end

class Window_EquipStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● Rewrites window_height
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height - (2 * line_height + standard_padding * 2)#fitting_height(visible_line_number)
  end
  #--------------------------------------------------------------------------
  # ● Aliases refresh
  #--------------------------------------------------------------------------
  alias eqskills_refresh refresh
  def refresh(item = nil)
    eqskills_refresh
    contents.clear
    draw_actor_name(@actor, 4, 0) if @actor
    6.times {|i| draw_item(0, line_height * (1 + i), 2 + i) }
      unless item == nil
      if item.is_a?(RPG::Weapon)
        unless Equipment_Skills::Weapons[item.id] == nil
          skills = Equipment_Skills::Weapons[item.id]
        end
      end
      if item.is_a?(RPG::Armor)
        unless Equipment_Skills::Armors[item.id] == nil
          skills = Equipment_Skills::Armors[item.id]
        end
      end
      unless skills == nil
        change_color(normal_color)
        draw_text(4, 168, width, line_height, "Equipment Skills")
        change_color(system_color)
        i = 1
        for skill in skills
          draw_text(4, 168 + 24 * i, width, line_height, $data_skills[skill].name)
          i = i + 1
        end
      end
    end
  end
end

class Window_EquipSlot < Window_Selectable
  #--------------------------------------------------------------------------
  # ● Aliases update
  #--------------------------------------------------------------------------
  alias eqskills_update update
  def update
    eqskills_update
    @status_window.refresh(self.item) if self.active == true
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● New method add_text
  #--------------------------------------------------------------------------
  def add_message(text)
    $game_message.add('\.' + text)
  end
end
 
  • Like
Reactions: BCj
Joined
Jan 25, 2022
Messages
24
Reaction score
37
First Language
English
Primarily Uses
RMVXA
Here is a mod of Fomar's Equipment skills script.
No Ap.
Ruby:
=begin
Equipment Skills System Script
by Fomar0153
Mod by Roninator2
Version 1.1.1
----------------------
Notes
----------------------
If using my Custom Equipment Slots script then
make sure this script is above the Equipment Slots Script
and make sure you have the compatability patch.
Allows learning of skills by equipment with the
option to learn skills pernamently.
----------------------
Instructions
----------------------
Then follow the instructions below about how to add skills
to weapons and armor.
----------------------
Change Log
----------------------
1.0 -> 1.1 Fixed a bug which caused skills learnt from
           armour to not display they were learnt.
1.1 -> 1.1.1 Removed AP system
----------------------
Known bugs
----------------------
None
=end

module Equipment_Skills
 
  Weapons = []
  # Add weapon skills in this format
  # Weapons[weapon_id] = [skillid1, skillid2]
  Weapons[1] = [8]
 
  Armors = []
  # Add weapon skills in this format
  # Armors[armor_id] = [skillid1, skillid2]
  Armors[3] = [9]
 
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● Rewrites change_equip
  #--------------------------------------------------------------------------
  def change_equip(slot_id, item)
    return unless trade_item_with_party(item, equips[slot_id])
    return if item && equip_slots[slot_id] != item.etype_id
    @equips[slot_id].object = item
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Aliases refresh
  #--------------------------------------------------------------------------
  alias eqskills_refresh refresh
  def refresh
    eqskills_refresh
    for item in self.equips
      if item.is_a?(RPG::Weapon)
        unless Equipment_Skills::Weapons[item.id] == nil
          for skill in Equipment_Skills::Weapons[item.id]
            learn_skill(skill)
          end
        end
      end
      if item.is_a?(RPG::Armor)
        unless Equipment_Skills::Armors[item.id] == nil
          for skill in Equipment_Skills::Armors[item.id]
            learn_skill(skill)
          end
        end
      end
    end
    # relearn any class skills you may have forgotten
    self.class.learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level <= @level
    end
  end
end

class Window_EquipItem < Window_ItemList
  #--------------------------------------------------------------------------
  # ● Rewrites col_max
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
  #--------------------------------------------------------------------------
  # ● Aliases update_help
  #--------------------------------------------------------------------------
  alias eqskills_update_help update_help
  def update_help
    eqskills_update_help
    if @actor && @status_window
      @status_window.refresh(item)
    end
  end
end

class Scene_Equip < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● Rewrites create_item_window
  #--------------------------------------------------------------------------
  alias eqskills_create_item_window create_item_window
  def create_item_window
    wx = @status_window.width # Edited line if you need to merge
    wy = @slot_window.y + @slot_window.height
    ww = @slot_window.width  # Edited line if you need to merge
    wh = Graphics.height - wy
    @item_window = Window_EquipItem.new(wx, wy, ww, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.status_window = @status_window
    @item_window.actor = @actor
    @item_window.set_handler(:ok,    method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @slot_window.item_window = @item_window
  end
end

class Window_EquipStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● Rewrites window_height
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height - (2 * line_height + standard_padding * 2)#fitting_height(visible_line_number)
  end
  #--------------------------------------------------------------------------
  # ● Aliases refresh
  #--------------------------------------------------------------------------
  alias eqskills_refresh refresh
  def refresh(item = nil)
    eqskills_refresh
    contents.clear
    draw_actor_name(@actor, 4, 0) if @actor
    6.times {|i| draw_item(0, line_height * (1 + i), 2 + i) }
      unless item == nil
      if item.is_a?(RPG::Weapon)
        unless Equipment_Skills::Weapons[item.id] == nil
          skills = Equipment_Skills::Weapons[item.id]
        end
      end
      if item.is_a?(RPG::Armor)
        unless Equipment_Skills::Armors[item.id] == nil
          skills = Equipment_Skills::Armors[item.id]
        end
      end
      unless skills == nil
        change_color(normal_color)
        draw_text(4, 168, width, line_height, "Equipment Skills")
        change_color(system_color)
        i = 1
        for skill in skills
          draw_text(4, 168 + 24 * i, width, line_height, $data_skills[skill].name)
          i = i + 1
        end
      end
    end
  end
end

class Window_EquipSlot < Window_Selectable
  #--------------------------------------------------------------------------
  # ● Aliases update
  #--------------------------------------------------------------------------
  alias eqskills_update update
  def update
    eqskills_update
    @status_window.refresh(self.item) if self.active == true
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● New method add_text
  #--------------------------------------------------------------------------
  def add_message(text)
    $game_message.add('\.' + text)
  end
end
Thanks, I'll check it out.
 

Latest Threads

Latest Posts

Latest Profile Posts

The main game of my trilo/saga 50%OFF on Steam..... its now or never more
I swap between Ace and MZ so I can stay fresh but - what do you mean you can use subfolders in the plugin's folder for easier organization!?
Did some new music again, praise be. To the next song!
Watch Studio Blue play Numina by starlit in our latest RPG Maker Games Critique stream starting NOW!

Forum statistics

Threads
123,137
Messages
1,154,236
Members
161,472
Latest member
lestat90
Top