08-15-2015, 02:59 AM
Oookay. Got SOMETHING for you.... a Patch
Oh, and remember. We do not considered doubleposting if some significant time had passed and new and pertinent information is being presented.
And the way the system is set up in your scripts library is kinda manditory... KINDA...
So yeah, The Moggy Menu scripts go before the battlesystem, but this patch goes after them all.
And without further adieu...
IF.... you're not using Moghunter's Scene Status Eva (and why the heck wouldn't you??), then you will want to remove the Window_Status class in the patch from lines 278 to 319. Since status windows show equipment, and this is a multi-Slot system, the status window had to be adjusted accordingly.
OH. And there is a replacement version of the 'LAYOUT-EQUIP' picture that goes in your pictures folder (no Weapon, Armor, Boots) text there. And there are some extra instructions in the patch.
Layout-Equip.PNG (Size: 58.63 KB / Downloads: 7)
Oh, and remember. We do not considered doubleposting if some significant time had passed and new and pertinent information is being presented.
And the way the system is set up in your scripts library is kinda manditory... KINDA...
Mog Menu Equip
Mog Menu Status (your option)
Atoa's Battlesystem
Atoa's Add-Ons (including Multiple Slots)
THIS PATCH!!!!
So yeah, The Moggy Menu scripts go before the battlesystem, but this patch goes after them all.
And without further adieu...
The Atoa's Moggy-Slots Patch
Code:
#==============================================================================
# ** Atoa's Moggy-Slots - The Moghunter Patch for Atoa's Multi Slot Script
#------------------------------------------------------------------------------
# by DerVVulfman
# version 1.0
# 08-11-2016
# RGSS / RMXP - Involves Rewrites
#------------------------------------------------------------------------------
#
# INTRODUCTION:
# =============
# This script is intended to permit the Equipment Multi Slots script by Atoa
# to work with Moghunter's 'Scene_Equip Asuka' & 'Scene_Status Eva' scripts.
#
# As this script must alter the status window to account for the additional
# slots, it is necessary to have written this to account for both Equipment
# and Status menu scripts by Moghunter. At the same time, it endeavored to
# keep as much of the displayed information shared between the two scripts.
#
# NOTE: The original Moghunter Equipment script allowed for only a fixed
# number of slots. As such, the 'Layout-Equip.png' image contained text to
# display the slot names. Unfortunately, this will not be possible with a
# multiple slot system. As such, this script should come with an attached
# png file which resembles the original, but with the names removed.
#
# REMEMBER: Character portraits within the Moghunter menus is based upon
# the character's name followed by a suffix as described in the script's
# configuration section. In the case of a potrait of Aluxes, the filename
# would be Aluxes_P as the suffix defined in the PORTRAIT value is '_P'.
#
#==============================================================================
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This class is for all in-game windows.
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Name
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_name_mog(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
#--------------------------------------------------------------------------
# * Draw Level
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_level_mog(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
end
#==============================================================================
# ** Window_EquipLeft
#------------------------------------------------------------------------------
# This window displays actor parameter changes on the equipment screen.
#==============================================================================
class Window_EquipLeft < Window_Base
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias equip_left_multimog_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
# Perform the original code
equip_left_multimog_initialize(actor)
# Hide and resize to match Moghunter system
self.opacity = 0
self.height = 446
self.contents = Bitmap.new(width - 32, height - 32)
# Set Moghunter Font
self.contents.font.name = MOG::EQUIP_FONT
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_heroface2(@actor, 20, 460)
drw_equist(0,390)
draw_actor_name_mog(@actor, 4, 0)
draw_actor_level_mog(@actor, 4, 32)
self.contents.font.name = MOG::EQUIP_FONT
draw_actor_parameter(@actor, 10, 164 , 0)
draw_actor_parameter(@actor, 10, 196 , 1)
draw_actor_parameter(@actor, 10, 228 , 2)
draw_actor_parameter(@actor, 10, 260 , 3)
draw_actor_parameter(@actor, 10, 292 , 4)
draw_actor_parameter(@actor, 10, 324 , 5)
draw_actor_parameter(@actor, 10, 356 , 6)
if @new_atk != nil
self.contents.font.color = system_color
if @new_atk < @actor.atk
drw_eqpup(170,190,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_atk > @actor.atk
drw_eqpup(170,190,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,190,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 162, 36, 32, @new_atk.to_s, 2)
end
if @new_pdef != nil
if @new_pdef < @actor.pdef
drw_eqpup(170,226,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_pdef > @actor.pdef
drw_eqpup(170,226,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,226,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 194, 36, 32, @new_pdef.to_s, 2)
end
if @new_mdef != nil
if @new_mdef < @actor.mdef
drw_eqpup(170,258,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_mdef > @actor.mdef
drw_eqpup(170,258,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,258,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 226, 36, 32, @new_mdef.to_s, 2)
end
if @new_str != nil
if @new_str < @actor.str
drw_eqpup(170,290,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_str > @actor.str
drw_eqpup(170,290,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,290,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 258, 36, 32, @new_str.to_s, 2)
end
if @new_dex != nil
if @new_dex < @actor.dex
drw_eqpup(170,322,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_dex > @actor.dex
drw_eqpup(170,322,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,322,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 290, 36, 32, @new_dex.to_s, 2)
end
if @new_agi != nil
if @new_agi < @actor.agi
drw_eqpup(170,354,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_agi > @actor.agi
drw_eqpup(170,354,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,354,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 322, 36, 32, @new_agi.to_s, 2)
end
if @new_int != nil
if @new_int < @actor.int
drw_eqpup(170,386,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_int > @actor.int
drw_eqpup(170,386,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(170,386,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(190, 354, 36, 32, @new_int.to_s, 2)
end
end
end
#==============================================================================
# ** Window_EquipRight
#------------------------------------------------------------------------------
# This window displays items the actor is currently equipped with on the
# equipment screen.
#==============================================================================
class Window_EquipRight < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :data
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(272, 64, 368, 192)
self.contents = Bitmap.new(width - 32, actor.equip_kind.size * 32)
self.contents.font.name = MOG::EQUIP_FONT
self.opacity = 0
self.index = 0
@actor = actor
refresh
end
end
#==============================================================================
# ** Window_EquipItem
#------------------------------------------------------------------------------
# This window displays choices when opting to change equipment on the
# equipment screen.
#==============================================================================
class Window_EquipItem < Window_Selectable
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias equip_item_multimog_initialize initialize
alias equip_item_multimog_draw_item draw_item
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
# equip_type : equip region (0-3)
#--------------------------------------------------------------------------
def initialize(actor, equip_type)
# Perform the original code
equip_item_multimog_initialize(actor, equip_type)
# Hide and resize to match Moghunter system
self.width = 368
self.x = 272
self.opacity = 0
@column_max = 1
refresh
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
#--------------------------------------------------------------------------
def draw_item(index)
# Set Moghunter Font
self.contents.font.name = MOG::EQUIP_FONT
# Perform the original code
equip_item_multimog_draw_item(index)
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.name = MOG::STATUS_FONT
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 510, -5 )
draw_mexp5(@actor, 310, 130)
draw_actor_state(@actor, 450, 20)
draw_maphp5(@actor, 275, 165)
draw_mapsp5(@actor, 430, 165)
draw_actor_parameter2(@actor, 280, 108, 0)
draw_actor_parameter2(@actor, 460, 137, 1)
draw_actor_parameter2(@actor, 460, 108, 2)
draw_actor_parameter2(@actor, 280, 53, 3)
draw_actor_parameter2(@actor, 460, 53, 4)
draw_actor_parameter2(@actor, 280, 80, 5)
draw_actor_parameter2(@actor, 460, 80, 6)
self.contents.font.color = system_color
if @actor.two_weapons
for i in 0..1
draw_item_name($data_weapons[@actor.weapon_id(i)],320+16,228+32*i)
end
for i in 2...@actor.equip_type.size
draw_item_name($data_armors[ @actor.armor_id[i] ], 320+16,228+32*i)
end
else
draw_item_name($data_weapons[@actor.weapon_id], 320+16,228)
for i in 1...@actor.equip_type.size
draw_item_name($data_armors[ @actor.armor_id[i] ], 320+16,228+32*i)
end
end
end
end
#==============================================================================
# ** Scene_Equip
#------------------------------------------------------------------------------
# This class performs equipment screen processing.
#==============================================================================
class Scene_Equip
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
unless MOG::EQUIP_FX == 2
@mnback = Plane.new
@mnback.bitmap = RPG::Cache.picture(MOG::EQUIP_BACKGROUND)
@mnback.z = 1
else
@spriteset = Spriteset_Map.new
end
@mnlay = Sprite.new
@mnlay.bitmap = RPG::Cache.picture(MOG::EQUIP_LAYOUT)
@mnlay.z = 2
@actor = $game_party.actors[@actor_index]
@help_window = Window_Help.new
@help_window.opacity = 0
@help_window.x = -300
@help_window.contents_opacity = 0
@left_window = Window_EquipLeft.new(@actor)
@left_window.x = -300
@left_window.contents_opacity = 0
@right_window = Window_EquipRight.new(@actor)
@right_window.index = @equip_index
item_window_update
@right_window.help_window = @help_window
for i in 0...@actor.equip_kind.size
eval("@item_window#{i + 1}.help_window = @help_window")
end
@right_window.x = 640
refresh
unless MOG::EQUIP_FX == 2
Graphics.transition(MOG::EQUIP_TRAN_TIME, "Graphics/Transitions/" +
MOG::EQUIP_TRAN_TYPE)
else
Graphics.transition
end
loop do
Graphics.update
Input.update
update
break if $scene != self
end
for i in 0..20
@left_window.x -= 15
@left_window.contents_opacity -= 10
@item_window.x += 20
@item_window.contents_opacity -= 15
@right_window.x += 20
@right_window.contents_opacity -= 15
Graphics.update
end
Graphics.freeze
@help_window.dispose
@left_window.dispose
@right_window.dispose
item_window_dispose
@mnback.dispose unless MOG::EQUIP_FX == 2
@spriteset.dispose if MOG::EQUIP_FX == 2
@mnlay.dispose
end
#--------------------------------------------------------------------------
# * Update item window
#--------------------------------------------------------------------------
def item_window_update
for i in 0...@actor.equip_kind.size
type = @actor.equip_kind[i]
eval("@item_window#{i+1} = Window_EquipItem.new(@actor, type)")
end
for i in 0...@actor.equip_kind.size
eval("@item_window#{i+1}.x = 640")
end
for i in 0...@actor.equip_kind.size
eval("@item_window#{i + 1}.help_window = @help_window")
end
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
if $atoa_script['Atoa New Status']
@help_window.opacity = Equip_Window_Opacity
end
if @right_window.index > @right_window.data.size - 1
@right_window.index = @right_window.data.size - 1
end
for i in 0...@actor.equip_kind.size
eval("@item_window#{i + 1}.visible = (@right_window.index == #{i})")
end
item1 = @right_window.item
eval("@item_window = @item_window#{@right_window.index + 1}")
if @right_window.active
@left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
end
if @item_window.active
@item2 = @item_window.item
last_hp = @actor.hp
last_sp = @actor.sp
@actor.equip(@right_window.index, @item2 == nil ? 0 : @item2.id)
re_equip = []
if $atoa_script['Atoa Two Hands'] and @item2 != nil and
@item2.type_id == 0 and Two_Hands_Weapons.include?(@item2.id)
for i in 0...@actor.equip_kind.size
id = @actor.equip_kind[i]
if id == 1
re_equip << [i, @actor.equip_id[i]]
@actor.equip(i, 0)
end
end
elsif @item2 != nil and (@item2.type_id == 1 or
($atoa_script['Atoa Two Hands'] and
@item2.type_id == 0 and @actor.two_swords_style))
for i in 0...@actor.equip_kind.size
id = @actor.equip_kind[i]
if $atoa_script['Atoa Two Hands'] and @right_window.index != i and
id == 0 and Two_Hands_Weapons.include?(@actor.equip_id[id])
re_equip << [i, @actor.equip_id[i]]
@actor.equip(i, 0)
end
end
end
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
if $atoa_script['Atoa New Status']
new_str = @actor.str
new_dex = @actor.dex
new_agi = @actor.agi
new_int = @actor.int
new_eva = @actor.eva
new_hit = @actor.hit
new_crt = @actor.crt
new_dmg = @actor.dmg
new_rcrt = @actor.rcrt
new_rdmg = @actor.rdmg
end
@actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
for equip in re_equip
@actor.equip(equip[0], equip[1])
end
@actor.hp = last_hp
@actor.sp = last_sp
if $atoa_script['Atoa New Status']
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
new_dex, new_agi, new_int, new_eva, new_hit, new_crt, new_dmg,
new_rcrt, new_rdmg)
else
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
new_dex, new_agi, new_int)
end
end
end
end
IF.... you're not using Moghunter's Scene Status Eva (and why the heck wouldn't you??), then you will want to remove the Window_Status class in the patch from lines 278 to 319. Since status windows show equipment, and this is a multi-Slot system, the status window had to be adjusted accordingly.
OH. And there is a replacement version of the 'LAYOUT-EQUIP' picture that goes in your pictures folder (no Weapon, Armor, Boots) text there. And there are some extra instructions in the patch.
Layout-Equip.PNG (Size: 58.63 KB / Downloads: 7)
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links