Multi-Equip
#1
Multi-Equip
Version: 3.1.4


Introduction
This script allows you to configure the equipment slots for each actor or class. This script tweaks the Equip menu to show all stats and changes color depending on the change in stats. Also comes ready merged with my Multi-Attack script.


Screenshots
Yeah just look at Arshes but with two swords Oooh. How about two rings wow.

But Well Here are your screenshots
[Image: multiequip1ol8.png]
[Image: multiequip2mc3.png]
[Image: multiequip3ll9.png]
[Image: multiequip4ns3.png]


Demo
Download Here


Script
The families are still sobbing...


Instructions

Okay I am going to make this as clear as possible

Initial Directions
  • First Download the Demo via the Download Manager
  • Get Winzip, Ultimatezip, or some other crazy program to open zip files, and install it.
  • Find the downloaded file
  • Right Click on the file and select Extract or Open your Unzipping program and Extract the files from the archive
  • Open RPG Maker XP if you haven't already
  • Open the Project File
  • Copy Each Script from the demo or paste them all into one script and add that, I only have it in multiple script form for organization.
  • Find the Setup Portion of the Multi Equip Script
  • Get yourself a snack

Setup and Customization
Now I am going to explain this a second time, the code in the setup is already commented once with the instructions, but I'm going to explain it again code by code
  • The Loading of Data System This Line
    Code:
    $data_system = load_data("Data/System.rxdata")[/list]
          Is one of those "Do Not Touch Lines unless you know what you are doing" lines, but FYI it is used to get the defaults at the end of the setup.
    [*][code]        #--------------------------------------------------------------------------
            # * How Many Weapon Slots Needed (Maximum)
            #--------------------------------------------------------------------------
            Weapon_Slots = 2
    This is the Maximum Number of weapon slots needed, if you don't set this value correctly you will receive an error (probably a NilClass error)
  • Code:
    #--------------------------------------------------------------------------
            # * How Many Armor Slots Needed (Maximum)
            #--------------------------------------------------------------------------
            Armor_Slots = 6
    This is the Maximum Number of armor slots needed, if you don't set this value correctly you will receive an error (probably a NilClass error)
  • Code:
    #--------------------------------------------------------------------------
            # * Equip Names For Slots for Actors
            #     syntax - actor_id => [names] or %w( names )
            #--------------------------------------------------------------------------
            Actor_Names = {
            1 => %w( Sword Sword Shield Helm Armor/Plate Ring Ring ),
            2 => %w( Spear Shield Helm Armor/Plate Ring ),
            7 => ['Mace','Hat','Robe','Ring'],
            8 => ['Rod','Hat','Robe','Ring']
            }
    These are the slot equip names per actor. This is a hash using actor ids as keys and a array of strings as a value. Take the actor ids from the database without leading zeroes, now choose the names of each equip slot now type this (whatever actor id) => %w( name name name name ) or (whatever actor id => ['name', 'name', 'name'] the %w( ) is just a fancy easier way to create an array of strings you don't need the ' ' or " " or commas just use a space to separate elements if you need a space however just type \s
  • Code:
    #--------------------------------------------------------------------------
            # * Equip Names For Slots Classes
            #     syntax - class_id => [names] or %w( names )
            #--------------------------------------------------------------------------
            Class_Names = {
            1 => %w( Sword Sword Shield Helm Armor/Plate Ring Ring ),
            2 => %w( Spear Shield Helm Armor/Plate Ring ),
            7 => ['Mace','Hat','Robe','Ring'],
            8 => ['Rod','Hat','Robe','Ring']
            }
    See above and subsitute actor_id for class_id and actor with class. I'm not typing all of that again
  • Code:
    #--------------------------------------------------------------------------
            # * Equip Types For Slots
            #     syntax - actor_id = [types]
            #     note - w = weapon an = armor kind n
            #--------------------------------------------------------------------------
            Actor_Types = {
            }
    This is the Equip Types for each slot. It is setup in the same manner as the Actor_Names and Class_Names except this time you are deciding what can be equipped in each slot. This must correspond to the Slot Names defined. Now if you want to equip a weapon in the slot type w if you want a shield type a1 helmets a2 body armor a3 accessories a4 Hidden feature Other an where n is greater than 4 now I remember a script that lets you configure the database further now if you edit the armor's kind to be another value then maybe you make use of this feature.
  • Code:
    #--------------------------------------------------------------------------
            # * Equip Types For Slots
            #     syntax - class_id = [types] or %( types )
            #     note - w = weapon an = armor kind n
            #--------------------------------------------------------------------------
            Class_Types = {
            1 => %w( w w a1 a2 a3 a4 a4 ),
            2 => %w( w a1 a2 a3 a4 ),
            7 => ['w', 'a2', 'a3', 'a4'],
            8 => ['w', 'a2', 'a3', 'a4']
            }
    See Actor Types replace actor id with class id and actor with class also reread Actor Names and Class Names on the hash setup
    [*][code]        #--------------------------------------------------------------------------
            # * Initial Equipment
            #     syntax - actor_id => {slot id => equip id}
            #--------------------------------------------------------------------------
            Init_Equip = {
            1 => {0=>1, 2=>1, 3=>5, 4=>13},
            2 => {0=>5, 1=>1, 2=>5, 3=>17},
            7 => {0=>25, 1=>9, 2=>21},
            8 => {0=>29, 1=>9, 2=>21}
            }
    Now Let me tell you something important, the database equipment functions fail with this script added to your project, so you will have to redefine your initial equipment here. Again this is a hash with the actor ids as the key, but the inner values are also hashes as well with their key being the slot id (refer to the Names and Slot types Defined), if you do not define a slot then it is assumed that nothing is equipped in it when you start the game.
  • Code:
    #--------------------------------------------------------------------------
            # * Battle Test Equipment
            #     syntax - actor_id => {slot id => equip id}
            #--------------------------------------------------------------------------
            BT_Equip = {
            1 => {0=>4, 1=>2, 2=>1, 3=>5, 4=>13},
            2 => {0=>5, 1=>1, 2=>5, 3=>17},
            7 => {0=>25, 1=>9, 2=>21},
            8 => {0=>29, 1=>9, 2=>21}
            }
    See Init_Equip but replace at the start of game with when battletesting.
  • Code:
    #--------------------------------------------------------------------------
            # * Fixed Equipment
            #     syntax - actor_id => {slot_id => bool}
            #--------------------------------------------------------------------------
            Equip_Fix = {
            }
    This is the Fixed Equipment Option, again the database equipment functions fail after you add this script, and here you can define which slots are fixed again a hash (see a connection here?) with the actor ids as keys and with the value being another hash with the slot id (refer to Names and Slot Types)
  • Now Reaching the Do Not Touch Section
    Code:
    #--------------------------------------------------------------------------
            # * Set Class Types Default to Corresponding words for each slot
            #--------------------------------------------------------------------------
            Class_Names.default = $data_system.words.weapon, $data_system.words.armor1,
            $data_system.words.armor2, $data_system.words.armor3, $data_system.words.armor4
    Remember that line I pointed out at the beginning well here is where its needed. Its just the lame old Weapon, Shield, Helmet, Body Armor, and Accessory.
  • Code:
    #--------------------------------------------------------------------------
            # * Set Class Names Default to The Normal Five Slots
            #--------------------------------------------------------------------------
            Class_Types.default = %( w a1 a2 a3 a4 )
    Just the normal five slots here. nothing else.

Sidesteps
I mentioned that the Database's equipment functions fail after adding this script. This means that you can not use the Starting Equipment section in the actor tab in the database, in the battle test menu the Equipment Section, The Event Command Change Equipment, Conditional Branch Section Actor conditions weapon equipped and armor equipped.

Now the first two you can sidestep by the script setup

Now for Changing Equipment use the call script event command
.equip(slot_id, id)
is an instance of Game_Actor (ex $game_party.actors[0], $game_actors[2])
slot_id is the slot id refer to equip slot_types
id is the id of the weapon or armor to equip see slot_types

Now for Conditional Branch Weapon Equipped

Use the Script Condition of the Conditional Branch
.weapon_ids.include?(id)
is an instance of Game_Actor (ex $game_party.actors[0], $game_actors[2])
id is the id of the weapon to check if equipped

Now for Conditional Branch Armor Equipped

Use the Script Condition of the Conditional Branch
.armor_ids.include?(id)
is an instance of Game_Actor (ex $game_party.actors[0], $game_actors[2])
id is the id of the armor to check if equipped


FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.


Compatibility
Increased Compatibility with all of my other scripts.
May not be compatible with your CMS, I may merge the two if you ask.
Will be compatible with the next version of Seph's Equipment Skills script. *looks at Seph*
Incompatible with my equipment weights script NOW A PATCH IS INCLUDED
Incompatible with RTAB (don't ask for me to merge)
SDK compliant (don't ask to remove dependancy)
Requires Method and Class Library V1.5 or higher


Credits and Thanks
All Betatesters who tested this script, I forget if anyone tested it *coughRavencough*


Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Mea's Multi-STRIKE! DerVVulfman 4 13,920 05-14-2017, 09:58 PM
Last Post: DerVVulfman
   Moonpearl Patch for Multi-Slots! DerVVulfman 0 5,538 05-23-2016, 04:30 AM
Last Post: DerVVulfman
   Multi-Slot Equipment Script Guillaume777 3 13,308 05-26-2013, 07:28 PM
Last Post: Pia Carrot
   Auto Equip Optimizer for Guillaume777's MultiSlots DerVVulfman 1 6,950 06-20-2012, 03:26 PM
Last Post: buddysievers
   Multi-Attack Trickster 4 11,226 06-23-2010, 04:38 PM
Last Post: penguinboyroy
   Multi-Slot Store Patch DerVVulfman 9 16,691 12-15-2009, 10:24 PM
Last Post: explocion200
   Multi-Slots! patch for Me(tm)'s Visual Equipment DerVVulfman 1 6,811 08-24-2009, 03:55 AM
Last Post: DerVVulfman
   Moghunter Menus: Scene Equip Asuka DerVVulfman 3 9,854 08-02-2009, 08:10 PM
Last Post: Forsaken
   Advanced Equip Window RPG Advocate 0 5,208 03-02-2008, 08:13 AM
Last Post: RPG Advocate
   Multi-View CBS Trickster 0 4,262 03-01-2008, 05:09 AM
Last Post: Trickster



Users browsing this thread: 1 Guest(s)