Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- Duel Wield -> Free Hands
- by Fomar0153
- Version 1.0
- ----------------------
- Notes
- ----------------------
- No requirements
- Changes dual wielding to allow characters to equip shield or one handed
- weapons in the shield slot. Also allows for two handed weapons.
- ----------------------
- Instructions
- ----------------------
- Notetag two handed weapon with <two-handed> and have them
- disable the shield slot.
- I would reccomend changing the slot name to Main Hand and Off Hand
- or something similiar
- ----------------------
- Known bugs
- ----------------------
- None
- =end
- class Game_Actor
- def equip_slots
- return [0,1,2,3,4]
- end
- 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) and
- not (dual_wield? and (equip_slots[slot_id] == 1 and item.etype_id == 0))
- @equips[slot_id].object = item
- refresh
- end
- def release_unequippable_items(item_gain = true)
- @equips.each_with_index do |item, i|
- if !equippable?(item.object,equip_slots[i]) || (item.object.etype_id != equip_slots[i] and
- not (dual_wield? and (equip_slots[i] == 1 and item.object.etype_id == 0)))
- trade_item_with_party(nil, item.object) if item_gain
- item.object = nil
- end
- end
- end
- def equippable?(item, slot = nil)
- unless slot.nil?
- if slot == 1 and dual_wield?
- return (super(item) and not equip_type_sealed?(1)) if item.is_a?(RPG::Weapon)
- end
- end
- return super(item)
- end
- end
- class RPG::Weapon
- def two_handed?
- return self.note.include?("<two-handed>")
- end
- end
- class Window_EquipItem < Window_ItemList
- def include?(item)
- return true if item == nil
- return false unless item.is_a?(RPG::EquipItem)
- return false if @slot_id < 0
- return false if @actor.equip_slots[@slot_id] == 1 and
- (item.is_a?(RPG::Weapon) and item.two_handed?)
- return false if (item.etype_id != @actor.equip_slots[@slot_id]) and
- not (@actor.dual_wield? and (@actor.equip_slots[@slot_id] == 1 and item.etype_id == 0))
- return @actor.equippable?(item,@actor.equip_slots[@slot_id])
- end
- end
Add Comment
Please, Sign In to add comment