Help - Search - Members - Calendar
Full Version: MOG-Styled Menus (Item, Equip & Skills)
RPG RPG Revolution Forums > Scripting > Script Tutorials > RGSS2
Selacius
MOG & SEL SCENE MENUS
Version: 2.0
By Selacius


Introduction
This demo contains the original MOG Menu & Status Scenes, with the VX versions of the ITEM, SKILL, EQUIP, and SHOP XP scripts. Also contained is an adjustment to the Skill Shop by Nechigawara Sanzenin to fit the SEL style.

Screenshots







Demo
Rapidshare Demo
Mediafire Demo

FAQ
Ask here and they will be fixed.

Compatibility
Any additions to the menu will need new graphics and also slight modification of the MOG menu script.

Credits and Thanks
Selacius (Scripting)
Lomastul (Images)
MOGHUNTER (XP Scripts & Images)

Terms and Conditions
Free for use but make sure to credit those who deserve it.
mars111
QUOTE (Selacius @ Oct 8 2008, 09:33 PM) *
Hello everyone, I have been working quite deligently to convert the Mog Hunter XP menu scripts to VX. At the present moment I have the skills menu script converted, or should I say completely rewritten but using the VX version of his menu graphics. The graphics still need a bit of tweaking to work with the model properly but that should not be hard to do (should I find a graphically attuned person to help). My next goal is to rewrite the equipment and item scripts and if I have time, the XP shop script. I am not going to post the skills menu script yet as the images need to be adjusted and I want to add them all (6 scripts, Menu, Status, Skills, Equip, Items, Shop) all as one package. This post is more so to let the community know of what to expect in the near future.



AWESOME man, im looking forward you to finish this script! i'll def use it on my game i'll develop sooner or later and give u a big credit ;o (if you let us use it tongue.gif)
lomastul
menu and status screens dont need to be converted because MOG already made them for RMVX and they look better than the RMXP version tongue.gif
good job tho i was working on these and i had a lot of bugs i couldnt fix >.> tho good luck [if you need help in resizing the pictures send me a pm.
Selacius
lomastul yea they did have a lot of bugs. As for the menu and status, I will be including those into the demo for continuity sake and to have all of MOGs scripts in one location. I actually completely rewrote the scripts or am in the process of rewriting them. If you were to think about it, the MOG scripts don't add any extra functionality to the menus. Took me a few days of debugging to realize that.
If anyone is interested or able to modify the images for me please contact me via PM and we can discuss the actual changes.
Selacius
So I finished the Equip script although it is going to need a huge graphical overhaul before it looks decent. Will work on the Items menu tomorrow.
Selacius
Alright, so I have finished all 3 MOG scripts that have not been moved to VX. These include Equip, Item & Skills. I am just awaiting a couple modifications in images before I post these.
Selacius
Alrightie,
Its been a while since my last post. But here they are. In this demo you will find the Item, Equip, Skills and Shop scenes converted to VX. The originals were created by MogHunter. Credit goes to Moghunter for the original ideas, scripts and images, to Lomastul for graphical assistance, and myself for script conversion.

http://rapidshare.com/files/155677907/SEL_..._Menus.zip.html
Allight
Ummm, this is really awesome but there's a small problem... It really interferes with the tankentai side view battle system. Like when I attack, use skills and items, all sorts of stuff. Do y'all know how to fix that?
prinnydood02
Do you think it would be possible to make this script compatible with Prexus's Party Manager script? Here's the script in case you need it.

#=========================================================================
=====
# ** Prexus - Party Manager (v1.1c)
#------------------------------------------------------------------------------
# This is a Party Management system, created by Prexus. It allows you to
# change your party makeup, out of a reserve of characters. It also allows you
# to lock characters, making them mandatory, and make characters unavailable.
#
# See thread at RMXP.org for instructions:
# http://www.rmxp.org/forums/index.php?topic...02326#msg402326
#
# - Changelog (v1.1c)
# * Fixed a graphical error in the party reserves window
#
# - (v1.1b)
# * Fixed a bug with the draw_item_name method, added the width parameter
# - (v1.1)
# * Added functionality to see player's equipment (press the A button)
#
#==============================================================================

module RPG
class Actor
def setup
@found = false
@unavailable = false
@required = false
end
attr_accessor :found
attr_accessor :unavailable
attr_accessor :required
end
end

class Game_Actors
attr_reader :data
alias prex_party_g_actors_initialize initialize
def initialize
prex_party_g_actors_initialize
$data_actors.each do |actor|
actor.setup if actor
@data[actor.id] = Game_Actor.new(actor.id) if actor
end
end
end

class Scene_File < Scene_Base
alias prex_party_s_file_write_save_data write_save_data
alias prex_party_s_file_read_save_data read_save_data
def write_save_data(file)
prex_party_s_file_write_save_data(file)
Marshal.dump($data_actors, file)
end
def read_save_data(file)
prex_party_s_file_read_save_data(file)
$data_actors = Marshal.load(file)
end
end

class Scene_Title < Scene_Base
alias prex_party_s_title_command_new_game command_new_game
def command_new_game
prex_party_s_title_command_new_game
$game_party.members.each {|s| s.actor.found = true if s}
end
end

class Window_Base < Window
def draw_item_name(item, x, y, enabled = true, width = 172)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 24, y, width, WLH, item.name)
end
end
end

class Scene_Party < Scene_Base
def initialize(from_menu, from_event)
@from_menu = from_menu
@from_event = from_event
end
def start
super
create_menu_background
create_windows
end
def create_windows
@member_window = Window_CurrentMember.new
@party_window = Window_CurrentParty.new
@party_window.active = true
@selectable_window = Window_SelectMember.new
end
def update_windows
@member_window.update
@party_window.update
@selectable_window.update
if @party_window.active
@member_window.set_member(@party_window.member)
elsif @selectable_window.active
@member_window.set_member(@selectable_window.member)
end
end
def terminate
super
@member_window.dispose
@party_window.dispose
@selectable_window.dispose
end
def update
super
update_windows
update_input
end
def update_input
if Input.trigger?(Input::A)
if @member_window.mode == 1
@member_window.set_mode(0)
elsif @member_window.mode == 0
@member_window.set_mode(1)
end
end
if @party_window.active
if Input.trigger?(Input::cool.gif
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
member = @party_window.member
if member != nil
if member.actor.unavailable or member.actor.required
Sound.play_buzzer
return
end
end
Sound.play_decision
@party_window.active = false
@selectable_window.active = true
@selectable_window.index = 0
end
elsif @selectable_window.active
if Input.trigger?(Input::cool.gif
Sound.play_cancel
@selectable_window.index = -1
@selectable_window.active = false
@party_window.active = true
elsif Input.trigger?(Input::C)
member = @selectable_window.member
if member != nil
if member.actor.unavailable
Sound.play_buzzer
return
end
end
if $game_party.members.size == 1 and member == nil
Sound.play_buzzer
return
end
Sound.play_decision
$game_party.remove_actor(@party_window.member.id) if @party_window.member != nil
$game_party.add_actor(@selectable_window.member.id) if @selectable_window.member != nil
@selectable_window.refresh
@party_window.refresh
@selectable_window.index = -1
@selectable_window.active = false
@party_window.active = true
end
end
end
def return_scene
if @from_menu
$scene = Scene_Menu.new(5)
elsif @from_event
$scene = Scene_Map.new
end
end
end

class Window_CurrentMember < Window_Base
attr_reader :mode
def initialize(member = nil, mode = 0)
super(304, 80, 192, 256)
create_contents
@member = member
@mode = 0
refresh
end
def member
return @member
end
def set_member(member)
old_member = @member
@member = member
refresh if old_member != @member
end
def set_mode(mode)
@mode = mode if [0, 1].include?(mode)
refresh
end
def refresh
self.contents.clear
return unless @member
x, y = 0, 0
self.draw_actor_face(@member, x, y, 48)
self.draw_actor_name(@member, x + 52, y)
self.draw_actor_class(@member, x + 52, y + WLH)
self.draw_actor_level(@member, x, y + WLH*2)
case @mode
when 0
self.draw_icon(142, self.contents.width - 24, y + WLH*2)
self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Equip', 2)
self.draw_actor_hp(@member, x, y + WLH*3, 160)
self.draw_actor_mp(@member, x, y + WLH*4, 160)
self.draw_actor_parameter(@member, x, y + WLH*5, 0)
self.draw_actor_parameter(@member, x, y + WLH*6, 1)
self.draw_actor_parameter(@member, x, y + WLH*7, 2)
self.draw_actor_parameter(@member, x, y + WLH*8, 3)
when 1
self.draw_icon(143, self.contents.width - 24, y + WLH*2)
self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Stat', 2)
for i in 0...@member.equips.size
item = @member.equips[i]
self.draw_item_name(item, x, y + WLH*(3+i), true, self.contents.width - 24)
end
end
end
end

class Window_CurrentParty < Window_Selectable
def initialize
super(48, 80, 256, 64)
@item_max = 4
@column_max = @item_max
create_contents
self.index = 0
refresh
end
def member
return $game_party.members[self.index]
end
def refresh
for i in 0...@item_max
rect = item_rect(i)
self.contents.clear_rect(rect)
end
for i in 0...$game_party.members.size
rect = item_rect(i)
bitmap = Cache.character($game_party.members[i].character_name)
sign = $game_party.members[i].character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = $game_party.members[i].character_index
src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
if $game_party.members[i].actor.unavailable
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
else
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
end
if $game_party.members[i].actor.required
lock_bitmap = Cache.system("Locked")
self.contents.blt(rect.x + rect.width - lock_bitmap.width,
rect.y + rect.height - lock_bitmap.height,
lock_bitmap, lock_bitmap.rect)
end
end
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = 32
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * 32
return rect
end
end

class Window_SelectMember < Window_Selectable
def initialize
super(48, 144, 256, 192)
calculate_actors
@item_max = @actors.size + 1
@column_max = 4
self.index = -1
self.active = false
refresh
end
def calculate_actors
@actors = []
for a in $game_actors.data
@actors << a if a != nil and a.actor.found and !$game_party.members.include?(a)
end
end
def member
return @actors[self.index]
end
def refresh
self.contents.clear
calculate_actors
@item_max = @actors.size + 1
for i in 0...@actors.size
rect = item_rect(i)
bitmap = Cache.character(@actors[i].character_name)
sign = @actors[i].character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = @actors[i].character_index
src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
if @actors[i].actor.unavailable
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
else
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
end
if @actors[i].actor.required
lock_bitmap = Cache.system("Locked")
self.contents.blt(rect.x + rect.width - lock_bitmap.width,
rect.y + rect.height - lock_bitmap.height,
lock_bitmap, lock_bitmap.rect)
end
end
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = 32
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * 32
return rect
end
end
#==============================================================================
# ** End of Party Manager (v1.1c)
#------------------------------------------------------------------------------
###############################################################################
#============================================================================
#L's Custom Menu - Simple DMS Edit (RMVX ver.) Rev.1
#============================================================================

module MenuCommand
#Default menu commands +1
Item = 'Item'
Skill = 'Skill'
Equip = 'Equip'
Status = 'Status'
Save = 'Save'
Load = 'Load'
End_Game = 'Exit'
#Optional menu commands
Party = 'Party'
Quest = 'Quest'
System = 'System'
Party = 'Party'
end

#------------------------------------------------------------------------------
# Game_Map
#------------------------------------------------------------------------------
class Game_Map
#------------------------------------------------------------------------------
# Name
#------------------------------------------------------------------------------
def name
$map_infos[@map_id]
end
end


#========================================
# Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rvdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end


class Window_MapName < Window_Base
def initialize(x, y)
super(x, 176, 160, 136)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 120, 32, "Location")
self.contents.font.color = normal_color
self.contents.draw_text(4, WLH, 120, 32, $game_map.name.to_s, 2)
end
end

#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
# This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(6)
end
end
end
#==============================================================================
# ** End Scene_File
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_End
#------------------------------------------------------------------------------
# This class performs game end screen processing.
#==============================================================================
class Scene_End < Scene_Base
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new(6)
end
end
#==============================================================================
# ** End Scene_End
#------------------------------------------------------------------------------
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
commands_init
@changer = 0 #Change Party Order by Yargovish
@where = 0 #
@checker = 0 #
end
#--------------------------------------------------------------------------
# * Set Commands
#--------------------------------------------------------------------------
def commands_init
@commands = []
s1 = MenuCommand::Item
s2 = MenuCommand::Skill
s3 = MenuCommand::Equip
s4 = MenuCommand::Status
s5 = MenuCommand::Party
s6 = MenuCommand::System
@commands.push(s1, s2, s3, s4, s5, s6).flatten!

@sys_commands = []
o1 = MenuCommand::Save
o2 = MenuCommand::Load
o3 = MenuCommand::End_Game
@sys_commands.push(o1, o2, o3).flatten!
end
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
create_system_window
@gold_window = Window_Gold.new(384, 264)
@status_window = Window_MenuStatus.new(0, 0)
@mapname_window = Window_MapName.new(384, 320)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@sys_command_window.dispose
@gold_window.dispose
@status_window.dispose
@mapname_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@sys_command_window.update
@gold_window.update
@status_window.update
@mapname_window.update
if @command_window.active
update_command_selection
elsif @sys_command_window.active
@sys_command_window.z = +500
update_sys_command_selection
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_Command.new(160, @commands)
@command_window.x = 384
@command_window.index = @menu_index
if $game_party.members.size == 0 # If number of party members is 0
@command_window.draw_item(0, false) # Disable item
@command_window.draw_item(1, false) # Disable skill
@command_window.draw_item(2, false) # Disable equipment
@command_window.draw_item(3, false) # Disable status
@command_window.draw_item(5, false) # Disable party
end
if $game_party.members.size <= 1
@command_window.draw_item(4, false) # Disable ordering
end
end
#--------------------------------------------------------------------------
# * Create System Command Window
#--------------------------------------------------------------------------
def create_system_window
@sys_command_window = Window_Command.new(128, @sys_commands)
@sys_command_window.visible = false
@sys_command_window.active = false
@sys_command_window.x = 250
@sys_command_window.y = 121
@sys_command_window.z = 0
check_save_available
check_load_available
end
#-----------------
def check_save_available
if $game_system.save_disabled # If save is forbidden
@sys_command_window.draw_item(1, false) # Disable save
end
end
#-----------------
def check_load_available
#Check if saved file exists
@load_enabled = (Dir.glob('Save*.rvdata').size > 0)
if !@load_enabled
#Put your @command_window.draw_item(index, false) to disable load
@sys_command_window.draw_item(2, false)
end
end
#--------------------------------------------------------------------------
# * Update Command Selection
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::cool.gif
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
# Return if Disabled Command
if disabled_main_command?
# Play buzzer SE
Sound.play_buzzer
return
end
main_command_input
end
end
#--------------------------------------------------------------------------
# * Update Command Selection
#--------------------------------------------------------------------------
def update_sys_command_selection
if Input.trigger?(Input::cool.gif
Sound.play_cancel
@command_window.active = true
@sys_command_window.active = false
@sys_command_window.visible = false
@sys_command_window.index = 0
@sys_command_window.z = -500
return
elsif Input.trigger?(Input::C)
# Return if Disabled Command
if disabled_main_command?
# Play buzzer SE
Sound.play_buzzer
return
end
sys_command_input
end
end
#--------------------------------------------------------------------------
# * Disabled Main Command? Test
#--------------------------------------------------------------------------
def disabled_main_command?
# Gets Current Command
command = @commands[@command_window.index]
sys_command = @sys_commands[@sys_command_window.index]
# Gets Menu Commands
c = MenuCommand
# If 0 Party Size
if $game_party.members.size == 0
# If Item, Skill, Equip or Status Selected
if [c::Item, c::Skill, c::Equip, c::Status, c::Party].include?(command)
return true
end
elsif $game_party.members.size <= 1
# If the command is changing member order
if [c::Order].include?(command)
return true
end
end
# If Save Disabled && Command is Save
return true if $game_system.save_disabled and sys_command == c::Save
# If Load Disabled && Command is Load
return true if !@load_enabled && sys_command == c::Load
return false
end
#--------------------------------------------------------------------------
# * Update Command Check
#--------------------------------------------------------------------------
def main_command_input
# Loads Current Command
command = @commands[@command_window.index]
# Play decision SE
Sound.play_decision
# Checks Commands
case command
when MenuCommand::Item #item
command_item
when MenuCommand::Skill, MenuCommand::Equip, MenuCommand::Status #skill, equip, status
start_actor_selection
when MenuCommand::Party #order
command_party
when MenuCommand::System #call system submenu
@sys_command_window.active = true
@sys_command_window.visible = true
@command_window.active = false
end
end
#--------------------------------------------------------------------------
# * Update System Command Check
#--------------------------------------------------------------------------
def sys_command_input
# Loads Current Command
sys_command = @sys_commands[@sys_command_window.index]
# Play decision SE
Sound.play_decision
# Checks Commands
case sys_command
when MenuCommand::Save #save
command_save
when MenuCommand::Load #load
command_load
when MenuCommand::End_Game #exit
command_endgame
end
end
#--------------------------------------------------------------------------
# * Start Actor Selection
#--------------------------------------------------------------------------
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
#--------------------------------------------------------------------------
# * End Actor Selection
#--------------------------------------------------------------------------
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
#--------------------------------------------------------------------------
# * Update Actor Selection
#--------------------------------------------------------------------------
def update_actor_selection
# Loads Current Command
command = @commands[@command_window.index]
if Input.trigger?(Input::cool.gif
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case command
when MenuCommand::Skill # skill
command_skill
when MenuCommand::Equip # equipment
command_equip
when MenuCommand::Status # status
command_status
end
end
end
#--------------------------------------------------------------------------
# * Command Item
#--------------------------------------------------------------------------
def command_item
# Switch to item screen
$scene = Scene_Item.new
end
#--------------------------------------------------------------------------
# * Command Skill
#--------------------------------------------------------------------------
def command_skill
# Switch to skill screen
$scene = Scene_Skill.new(@status_window.index)
end
#--------------------------------------------------------------------------
# * Command Equip
#--------------------------------------------------------------------------
def command_equip
# Switch to equipment screen
$scene = Scene_Equip.new(@status_window.index)
end
#--------------------------------------------------------------------------
# * Command Status
#--------------------------------------------------------------------------
def command_status
# Switch to status screen
$scene = Scene_Status.new(@status_window.index)
end
#--------------------------------------------------------------------------
# * Command Order
#--------------------------------------------------------------------------
def command_order
# If Main Command Active
if @command_window.active
# Activate Status Window
start_actor_selection
@checker = 0
return
end
#Change Party Order by Yargovish
if @checker == 0
@changer = $game_party.members[@status_window.index]
@where = @status_window.index
@checker = 1
else
$game_party.members[@where] = $game_party.members[@status_window.index]
$game_party.members[@status_window.index] = @changer
@checker = 0
@status_window.refresh
$game_player.refresh #
end
end
#--------------------------------------------------------------------------
# * Command Party
#--------------------------------------------------------------------------
def command_party
# Switch to party change screen
#Put your Party Change Scene here
$scene = Scene_Party.new(true, false)
end
#--------------------------------------------------------------------------
# * Command Option
#--------------------------------------------------------------------------
def command_option
# Switch to party change screen
#Put your Option Scene here
end
#--------------------------------------------------------------------------
# * Command Quest
#--------------------------------------------------------------------------
def command_quest
# Switch to party change screen
#Put your Quest Scene here
end
#--------------------------------------------------------------------------
# * Command Save
#--------------------------------------------------------------------------
def command_save
# Switch to save screen
$scene = Scene_File.new(true, false, false)
end
#--------------------------------------------------------------------------
# * Command Load
#--------------------------------------------------------------------------
def command_load
# Switch to load screen
$scene = Scene_File.new(false, false, false)
end
#--------------------------------------------------------------------------
# * Command End Game
#--------------------------------------------------------------------------
def command_endgame
# Switch to end game screen
$scene = Scene_End.new
end
end
#============================================================================
# End of L's Custom Menu - Simple DMS Edit (RMVX ver.) Rev.1
#============================================================================
Selacius
What are the problems being experienced with the Tanketai side view battle system? And I will take a look at the large party script. What exactly is the problem?
prinnydood02
QUOTE (Selacius @ Oct 23 2008, 09:02 PM) *
What are the problems being experienced with the Tanketai side view battle system? And I will take a look at the large party script. What exactly is the problem?


When I go into the menu, I can't choose to change any party members because the option "Party" doesn't exist.
zolaga
If it becomes with party changing and side view battle systems I am all over this smile.gif
Selacius
The reason it doesn't have the Party option is because the menu interface is all graphics. So you would have to remake graphics and rewrite some of the code.

As for the SBS I don't know what problems you guys seem to be having. Be descriptive and let me know what problems there are.
prinnydood02
QUOTE (Selacius @ Oct 26 2008, 08:54 PM) *
The reason it doesn't have the Party option is because the menu interface is all graphics. So you would have to remake graphics and rewrite some of the code.

As for the SBS I don't know what problems you guys seem to be having. Be descriptive and let me know what problems there are.


Okay, thanks for the reply. Another problem I have is that whenever I go into a battle, the weapons background keeps coming up. When that screen does come up, I can't do anything and have to restart.
Ginbu7
I found a major problem.
Wile in battle or when you try to save you get an error.
Here's the two conflicting lines

Wile in Battle when you enter skills
Scene_battle line 407

When you try to save
Scene_File line 25

Both lines are in regards to the help info window, so can anyone fix these two errors?
the_predator9104
Another thing that isn't a major issue, but would be nice is the "Buy, Sell, Exit" Tabs
They're there in the regular shop, but when you open the skill shop they aren't.
lomastul
ok here it is:
[Show/Hide] Skills shop fix

#==============================================================================
# Skill Shop for RMVX Ver 3.5
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#3.0 Change How to set Price , Add wait Level Up option
#3.5 Updated to match SEL SCENE Styles & offer skills based on class not actor
#==============================================================================
=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 turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "\p[Price]" for set Skill Price at Note in Skill Database.
You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor

[1,4],[2,3],

],

=end

module Cache
def self.menu(filename)
load_bitmap("Graphics/Menus/", filename)
end
end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
# Setting
Wait_Lv_Up = false # Wait 1 Lv up for use skill from buy
Show_cha = true # Show Charactor Graphic in Select Window
# Learn Text
How_Learn = "Who can learn?"
Can_Learn = "Can Learn"
Can_Learn_Lv = "On Lv"
Cant_Learn = "Can't Learn"
Learnt = "Learnt"
Teach = "Teach"
Cancel = "Cancel"
Next_Lv = "Next Lvl"
Can_use = "%s can use now!"
# Price Data For Non Set
PRICE = 100
# Hero Data
SKILL_BUY = {
# Add what skill can hero buy Here
# Class ID => [ID of skill,Level]
1 => [[33,1],[2,3],[3,1],],
2 => [[1,4],[2,3],[3,1],],
3 => [[5,1],[2,3],[3,1],],
}
# Add Price
def self.skill_price(id)
text = $data_skills[id].note
if (/\A\\[Pp]\[([0-9]+)\]/.match(text)) != nil then
price = $1.to_i
else
price = PRICE
end
return price
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 setup(actor_id)
actor = $data_actors[actor_id]
@actor_id = actor_id
@name = actor.name
@character_name = actor.character_name
@character_index = actor.character_index
@face_name = actor.face_name
@face_index = actor.face_index
@class_id = actor.class_id
@weapon_id = actor.weapon_id
@armor1_id = actor.armor1_id
@armor2_id = actor.armor2_id
@armor3_id = actor.armor3_id
@armor4_id = actor.armor4_id
@level = actor.initial_level
@exp_list = Array.new(101)
make_exp_list
@exp = @exp_list[@level]
@skills = []
@le_skills = []
@le = []
for i in self.class.learnings
learn_skill(i.skill_id) if i.level <= @level
end
clear_extra_values
recover_all
end
#--------------------------------------------------------------------------
def le_skills
result = []
for i in @le_skills
result.push($data_skills[i])
end
return result
end
#--------------------------------------------------------------------------
def learn_le_skill(skill_id)
unless skill_learn?($data_skills[skill_id])
@le_skills.push(skill_id)
@le_skills.sort!
end
end
#--------------------------------------------------------------------------
def forget_skill(skill_id)
@skills.delete(skill_id)
@le_skills.delete(skill_id)
end
#--------------------------------------------------------------------------
def skill_learn?(skill)
if @skills.include?(skill.id)
return true
elsif @le_skills.include?(skill.id)
return true
else
return false
end
end
#--------------------------------------------------------------------------
def le_learn_skill(skill_id)
unless @skills.include?(skill_id)
@skills.push(skill_id)
@skills.sort!
end
end
#--------------------------------------------------------------------------
def skill_can_use?(skill)
return false if @le_skills.include?(skill.id)
return false unless skill_learn?(skill)
return super
end
#--------------------------------------------------------------------------
def learn?(skill)
learn = skill_learn?(skill)
if learn == true
return false
else
return true
end
end
#--------------------------------------------------------------------------
def le_skill?(skill)
return @le_skills.include?(skill.id)
end
#--------------------------------------------------------------------------
def display_level_up(new_skills)
$game_message.new_page
text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
$game_message.texts.push(text)
for skill in new_skills
unless @le.include?(skill.id)
text = sprintf(Vocab::ObtainSkill, skill.name)
$game_message.texts.push(text)
end
end
for i in 0...@le.size
id = @le[i]
name = $data_skills[id].name
text = sprintf(SKILL_SHOP::Can_use, name)
$game_message.texts.push(text)
end
@le = []
end
#--------------------------------------------------------------------------
alias inc_level_up level_up
def level_up
inc_level_up
@le = []
for i in 0...@le_skills.size
id = @le_skills[i]
le_learn_skill(id)
@le.push(id)
end
@le_skills = []
end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
def refresh
@data = []
for skill in @actor.skills
@data.push(skill)
if skill.id == @actor.last_skill_id
self.index = @data.size - 1
end
end
for skill in @actor.le_skills
@data.push(skill)
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
if skill != nil
rect.width -= 4
enabled = @actor.skill_can_use?(skill)
draw_item_name(skill, rect.x, rect.y, enabled)
if @actor.le_skill?(skill)
text = SKILL_SHOP::Next_Lv
else
text = @actor.calc_mp_cost(skill)
end
self.contents.draw_text(rect, text, 2)
end
end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 250, 225)
@skill_shop_goods = $skill_shop
refresh
self.index = 0
end
#--------------------------------------------------------------------------
def skill
return @data[self.index]
end
#--------------------------------------------------------------------------
def refresh
@data = []
for i in 0...@skill_shop_goods.size
skill = $data_skills[@skill_shop_goods[i]]
if skill != nil
@data.push(skill)
end
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
def draw_item(index)
skill = @data[index]
price = SKILL_SHOP.skill_price(skill.id)
enabled = (price <= $game_party.gold)
rect = item_rect(index)
self.contents.clear_rect(rect)
draw_item_name(skill, rect.x, rect.y, enabled)
rect.width -= 4
self.contents.draw_text(rect, price, 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(x, y)
super(x, y, 270, 240)
@item = nil
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.members.size
if @item != nil
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
for actor in $game_party.members
x = 4
y = WLH * (1 + actor.index * 2)
draw_actor_can_learn(actor, x, y)
end
end
end
#--------------------------------------------------------------------------
def draw_actor_can_learn(actor, x, y)
can = false
lv = false
ac_lv = 0
can_learn = SKILL_SHOP.skill_buy(actor.class_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
ac_lv = can_learn[i][1]
end
break
else
can = false
end
end
enabled = (can and lv and actor.learn?(@item))
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
if SKILL_SHOP::Show_cha
name = actor.character_name
index = actor.character_index
size = contents.text_size(actor.name).width
draw_character(name, index, x + 20 + size , y + 30)
end
self.contents.draw_text(x, y, 200, WLH, actor.name)
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
self.contents.draw_text(x, y, 200, WLH, text, 2)
end
#--------------------------------------------------------------------------
def item=(item)
if @item != item
@item = item
refresh
end
end
#--------------------------------------------------------------------------
def update_cursor
if @index < 0
self.cursor_rect.empty
elsif @index < @item_max
y = WLH * (2 + @index * 2)
unless SKILL_SHOP::Show_cha
self.cursor_rect.set(0, y , contents.width, WLH)
else
self.cursor_rect.set(0, y - 4, contents.width,34)
end
end
end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
#--------------------------------------------------------------------------
def start
super
@msk_back1 = Plane.new
@msk_back1.bitmap = Cache.menu("Background")
@msk_lay = Sprite.new
@msk_lay.bitmap = Cache.menu("Shop_lay")
@viewport = Viewport.new(0, 0, 544, 416)
@help_window = Window_Help.new(42,360)
@gold_window = Window_Gold.new(384, -5)
@dummy_window = Window_Base.new(0, 112, 544, 304)
@buy_window = Window_Skill_ShopBuy.new(-10, 140)
@buy_window.active = true
@buy_window.visible = true
@buy_window.help_window = @help_window
@status_window = Window_Skill_ShopStatus.new(275, 128)
@status_window.visible = true
@status_window.active = false
@help_window.opacity = 0
@status_window.opacity = 0
@buy_window.opacity = 0
@gold_window.opacity = 0
@dummy_window.opacity = 0
end
#--------------------------------------------------------------------------
def terminate
super
@help_window.dispose
@gold_window.dispose
@dummy_window.dispose
@buy_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
def update
super
@msk_back1.ox += 1
@help_window.update
@gold_window.update
@dummy_window.update
@buy_window.update
@status_window.update
if @buy_window.active
update_buy_selection
elsif @status_window.active
update_target_selection
end
if Input.trigger?(Input::cool.gif
Sound.play_cancel
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
def update_buy_selection
@status_window.item = @buy_window.skill
if Input.trigger?(Input::cool.gif
Sound.play_cancel
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
return
end
if Input.trigger?(Input::C)
@item = @buy_window.skill
@price = SKILL_SHOP.skill_price(@item.id)
enabled = (@price <= $game_party.gold)
if not enabled
Sound.play_buzzer
else
Sound.play_decision
show_target_window
end
end
end
#--------------------------------------------------------------------------
def update_target_selection
if Input.trigger?(Input::cool.gif
Sound.play_cancel
hide_target_window
elsif Input.trigger?(Input::C)
@actor = $game_party.members[@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))
if not enabled
Sound.play_buzzer
else
learn_target(@item.id)
end
end
end
#--------------------------------------------------------------------------
def learn_target(skill_id)
Sound.play_shop
unless SKILL_SHOP::Wait_Lv_Up
@actor.learn_skill(skill_id)
else
@actor.learn_le_skill(skill_id)
end
$game_party.lose_gold(@price)
@buy_window.refresh
@gold_window.refresh
@status_window.refresh
hide_target_window
end
#--------------------------------------------------------------------------
def show_target_window
@buy_window.active = false
@status_window.active = true
@status_window.index = 0
end
#--------------------------------------------------------------------------
def hide_target_window
@buy_window.active = true
@status_window.active = false
@status_window.index =- 1
end
end

-LoMastul.
evil joesph
One problem... when you view the equipment screen, then encounter in a battle, for some reason, in the battle transition, the equipment background shows up for a brief moment (note its the picture of the background), then the battle begins like normal. It can be fixed if you close out the game, then re enter, but that would be unbearbaly tedious... can you find a solution to this?
the_predator9104
It gives me a syntax error in line 447
lomastul
can you specify on which of the script? there atleast 5 or 6 different scripts at the demo, it might also be a problem with another script that you are using.
the_predator9104
I'm pretty sure it's the fix that was just posted, I didn't have a problem until I replaced the previous skill shop script with the new one.
vavalar
could you make a version without the snowfalke that says "Your Game" in the background of the items menu.
Night5h4d3
all the script really does is look for that image, and shows it on the 'items' menu, if you dont want it, you should be fine by removing it, or replacing the image with a blank one, no need to edit the script
vavalar
i tried editing the picture but whenever it went into the game it was a white backgrond. i even imported it to make white a transperant color.
lomastul
QUOTE (vavalar @ Nov 20 2008, 02:49 PM) *
i tried editing the picture but whenever it went into the game it was a white backgrond. i even imported it to make white a transperant color.

wow i havnt visited the scripts forums for a while, tongue.gif too busy on my kaduki battlers shop, i'll fix that when ill get home, meanwhile you can try replacing the white color in to something other like green/pink or some other color other then completely black or white. and then try to import them, if that wont do it ill help.
RPGManiac3030
Is this compatible with the Skill Upgrade System by Nechigawara Sanzenin, not to be confused with the Skill Shop script?

I try to open the skill upgrade shop, but nothing happens...

EDIT: It works now...
Valnar
Could it be possible to get the Scripts posted,becasue everytime i want to open the Projekt File to copy the Scripts it says:
"The Version of the Projekt is to old!",and do not open the file ...

Edit:Ok Works now with the Script,and while testing i noticed that whne the Battle Starts it shows the Eqipp
Background after the Transition and then the it swiches to the Battle can anyone tell me please how to change that?

Ps:Sorry for my Mistakes blink.gif
FaytSaratome
God I love MOG's scripts they are so beautiful. 8D
quikster301
QUOTE (evil joesph @ Nov 14 2008, 08:39 PM) *
One problem... when you view the equipment screen, then encounter in a battle, for some reason, in the battle transition, the equipment background shows up for a brief moment (note its the picture of the background), then the battle begins like normal. It can be fixed if you close out the game, then re enter, but that would be unbearbaly tedious... can you find a solution to this?


go into the equip script and add @msk_lay.dispose for line 353. should look something like this

348 def terminate
349 super
350 @help_window.dispose
351 @equip_window.dispose
352 @status_window.dispose
353 @msk_lay.dispose
354 dispose_item_windows
RPGManiac3030
I noticed that if there are too many items in the inventory, then the list goes on and overlaps the bottom part, like in the pic:



So what do I do about it, if anything???
kaleygatore
i got a problem when encounter a battle using tankentai sbs
there's no battle option on my screen, n i can't escape the battle wacko.gif
so i just press the alt+f4 to terminate the rpgvx tongue.gif

here's the screenshot taken from my screen, thnks

Metamorphoze
please make it compatible with Vlad's Requiem SABS. It won't Hotkey 0-9 for me
ninjaheldransom
this is awsome man , this is a great asset to just about any RPM
houtman
is this script support 6 battlers? I have the script but how to make the menu styled like 6 characters on the list?
GhostPrince
does anyone knows how to add the materia system script to this menu?
when i used it both the list of this menu didnt working :\ and ti apears the singel list of the normal menu..LOL :\
if anyone can help plz reply this cool.gifsmile.gif





rikku123123
Um I have the same problem with the save thing.When i go to save it says error and then abunch of stuff.
Tierress
QUOTE (RPGManiac3030 @ Jan 18 2009, 06:29 AM) *
I noticed that if there are too many items in the inventory, then the list goes on and overlaps the bottom part, like in the pic:



So what do I do about it, if anything???


I also await for someone who can answer that...
I guess i see the same problem, since my project use item as a quest media or requirement.
Locke
The script looks awesome i,ll take it cool.gif
Goth Star Child
Gotta like these menu's. I hope when i start making a game i can have menu's like these.
Xander_koh
QUOTE (Selacius @ Oct 26 2008, 10:54 PM) *
The reason it doesn't have the Party option is because the menu interface is all graphics. So you would have to remake graphics and rewrite some of the code.

As for the SBS I don't know what problems you guys seem to be having. Be descriptive and let me know what problems there are.


Hey I was just wondering what exactly do you have to change in the script code to make a Party tab and a ATB Options Tab, for the ATB Tankentai options. I have already made a new graphics set for the menu tabs but I don't know how to change the sript to allow them to be used. Could you help me out please?

I'm using the "Integrated Reserve Party" by Modern Algebra and the "Tankentai Sideview Battle System w/ ATB" by Enu
Oliverskx
Um my game crashes after I select one of the empty slots in the equip menu. Is there a way to fix this?
chrismccoy
Okay, there's a very nasty glitch in this. More annoying than anything, but what it does is if I go to the Menu and then the Equip screen, the Equip Screen graphic will display briefly before the battle rather than a black screen.
Aedales
QUOTE (chrismccoy @ Jun 3 2011, 11:03 AM) *
Okay, there's a very nasty glitch in this. More annoying than anything, but what it does is if I go to the Menu and then the Equip screen, the Equip Screen graphic will display briefly before the battle rather than a black screen.


You should actually check dates before posting. This thread is long dead. In answer to your question, here you go:

In line 348 of the equipment script, replace this:

CODE
def terminate
super
@help_window.dispose
@equip_window.dispose
@status_window.dispose
dispose_item_windows
end


With this:

CODE
def terminate
super
@msk_lay.dispose
@help_window.dispose
@equip_window.dispose
@status_window.dispose
dispose_item_windows
@msk_back1.dispose
end


It will work... trust me smile.gif
chrismccoy
QUOTE (Aedales @ Jun 6 2011, 08:02 PM) *
QUOTE (chrismccoy @ Jun 3 2011, 11:03 AM) *
Okay, there's a very nasty glitch in this. More annoying than anything, but what it does is if I go to the Menu and then the Equip screen, the Equip Screen graphic will display briefly before the battle rather than a black screen.


You should actually check dates before posting. This thread is long dead. In answer to your question, here you go:

In line 348 of the equipment script, replace this:

CODE
def terminate
super
@help_window.dispose
@equip_window.dispose
@status_window.dispose
dispose_item_windows
end


With this:

CODE
def terminate
super
@msk_lay.dispose
@help_window.dispose
@equip_window.dispose
@status_window.dispose
dispose_item_windows
@msk_back1.dispose
end


It will work... trust me smile.gif


I did check the date and I'm aware. However nobody else seemed to acknowledge the bug and I found it nowhere else on the site. Thread necromancy is usually only frowned upon if its completely irrelevant and spamming.
Anyway, thank you, I will definitely implement it.
Kread-EX
@Aedales: Please don't minimod. Use the report button. And yes in that case, necroposting is allowed.
incarnum
Im not sure if anyone still uses these forums but, im having an issue with the mog equip menu.

to be specific, the part of the menu where it shows the list of equipment you have in your backpack and how many of each of those things you have.

not only is there not enough space to show the full name of any of my gear, but the quantity of that gear overlaps the name of the gear.

a screen shot, and code is included.
script
#_________________________________________________________________________
______
# SEL SCENE EQUIP MENU V2.0
#_______________________________________________________________________________
# By Selacius
# Graphics by lomastul, MOGHUNTER
# Original XP Script by MOGHUNTER
#_______________________________________________________________________________

module MOG
# Set Maximum (STR,DEX,AGL,INT)
MST_ST = 999
# Set Maximum (ATK,PDEF,MDEF)
MST_STE = 999
# Set Maximum (HP, MP)
MST_HMP = 9999
end

module Cache
def self.menu(filename)
load_bitmap("Graphics/Menus/", filename)
end
def self.icon(filename)
load_bitmap("Graphics/Icons/", filename)
end
end

#==============================================================================
# ** Window_Equip
#==============================================================================
class Window_Equip < Window_Selectable
def initialize(actor)
super(260, 70, 220, 170)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
@actor = actor
refresh
self.index = 0
end
def item
return @data[self.index]
end
def refresh
self.contents.clear
@data = []
for item in @actor.equips do @data.push(item) end
@item_max = @data.size
self.contents.font.color = system_color
self.contents.font.bold = true
self.contents.font.shadow = true
self.contents.font.size = 14
draw_item_name_menu_equip(@actor.equips[0], 0, 0)
draw_item_name_menu_equip(@actor.equips[1], 0, 24)
draw_item_name_menu_equip(@actor.equips[2], 0, 48)
draw_item_name_menu_equip(@actor.equips[3], 0, 72)
draw_item_name_menu_equip(@actor.equips[4], 0, 96)
end
def draw_item_name_menu_equip(item, x, y, enabled = true)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 30, y, 150, WLH, item.name)
end
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = WLH
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * WLH
return rect
end
end

#==============================================================================
# ** Window_EquipStatus
#------------------------------------------------------------------------------
class Window_EquipStatus < Window_Base
def initialize(x, y, actor)
super(x, y, 270, 390)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.contents.font.bold = true
self.contents.font.shadow = true
self.contents.font.size = 14
@actor = actor
refresh
end
def refresh
self.contents.clear
drw_equist(0,390)
draw_actor_face(@actor, 4, 30)
draw_actor_name(@actor, 4, 10)
self.contents.draw_text(4, 130, 36, 24, @actor.level.to_s, 2)
self.contents.draw_text(25, 145, 90, 24, @actor.class.name, 2)
draw_actor_parameter2(@actor, 0, 162 , 4, 10)
draw_actor_parameter2(@actor, 0, 185 , 5, 10)
draw_actor_parameter2(@actor, 0, 208 , 0)
draw_actor_parameter2(@actor, 0, 231 , 1)
draw_actor_parameter2(@actor, 0, 256 , 3)
draw_actor_parameter2(@actor, 0, 279 , 2)
if @new_hp != nil
self.contents.font.color = system_color
if @new_hp < @actor.hp
drw_eqpup(140,185,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_hp > @actor.hp
drw_eqpup(140,185,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,188,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 164, 36, 24, @new_hp.to_s, 2)
end
if @new_mp != nil
self.contents.font.color = system_color
if @new_mp < @actor.mp
drw_eqpup(140,207,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_mp > @actor.mp
drw_eqpup(140,207,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,210,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 187, 36, 24, @new_mp.to_s, 2)
end
if @new_atk != nil
self.contents.font.color = system_color
if @new_atk < @actor.atk
drw_eqpup(140,230,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_atk > @actor.atk
drw_eqpup(140,230,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,234,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 210, 36, 24, @new_atk.to_s, 2)
end
if @new_def != nil
if @new_def < @actor.def
drw_eqpup(140,254,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_def > @actor.def
drw_eqpup(140,254,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,257,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 232, 36, 24, @new_def.to_s, 2)
end
if @new_agi != nil
if @new_agi < @actor.agi
drw_eqpup(140,279,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_agi > @actor.agi
drw_eqpup(140,279,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,282,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 258, 36, 24, @new_agi.to_s, 2)
end
if @new_spi != nil
if @new_spi < @actor.spi
drw_eqpup(140,302,2)
self.contents.font.color = Color.new(255,50,50,255)
elsif @new_spi > @actor.spi
drw_eqpup(140,302,1)
self.contents.font.color = Color.new(50,250,150,255)
else
drw_eqpup(140,305,0)
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(165, 281, 36, 24, @new_spi.to_s, 2)
end
end
def set_new_parameters(new_hp, new_mp, new_atk, new_def, new_spi, new_agi)
if @new_hp != new_hp or @new_mp != new_mp or
@new_atk != new_atk or @new_def != new_def or
@new_spi != new_spi or @new_agi != new_agi
@new_hp = new_hp
@new_mp = new_mp
@new_atk = new_atk
@new_def = new_def
@new_spi = new_spi
@new_agi = new_agi
refresh
end
end
def drw_equist(x,y)
equist = Cache.menu("Equip_St")
cw = equist.width
ch = equist.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, equist, src_rect)
end
def drw_eqpup(x,y,type)
case type
when 0
est = Cache.icon("ST_EQU")
when 1
est = Cache.icon("ST_UP")
when 2
est = Cache.icon("ST_DOWN")
end
cw = est.width
ch = est.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, est, src_rect)
end
def draw_actor_parameter2(actor, x, y, type, z = 0)
back = Cache.menu("Parameter_Bar_Back")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw - 106 - z, ch)
self.contents.blt(x + 40 , y - ch + 18, back, src_rect)
meter = Cache.menu("Parameter_Bar")
case type
when 0
parameter_value = actor.atk
cw = (meter.width - 106) * actor.atk / MOG::MST_STE
when 1
parameter_value = actor.def
cw = (meter.width - 106) * actor.def / MOG::MST_STE
when 2
parameter_value = actor.spi
cw = (meter.width - 106) * actor.spi / MOG::MST_ST
when 3
parameter_value = actor.agi
cw = (meter.width - 106) * actor.agi / MOG::MST_ST
when 4
parameter_value = actor.hp
cw = (meter.width - 106 - z) * actor.hp / MOG::MST_HMP
when 5
parameter_value = actor.mp
cw = (meter.width - 106 - z) * actor.mp / MOG::MST_HMP
end
self.contents.font.color = normal_color
self.contents.draw_text(x + 100, y - 2, 36, 32, parameter_value.to_s, 2)
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 40 , y - ch + 18, meter, src_rect)
end
end
#==============================================================================
# ** Window_EquipItem
#==============================================================================
class Window_EquipItem < Window_Item
def initialize(x, y, width, height, actor, equip_type)
@actor = actor
if equip_type == 1 and actor.two_swords_style
equip_type = 0 # Change shield to weapon
end
@equip_type = equip_type
@column_max = 1
super(x, y, width, height)
refresh
end
def include?(item)
return true if item == nil
if @equip_type == 0
return false unless item.is_a?(RPG::Weapon)
else
return false unless item.is_a?(RPG::Armor)
return false unless item.kind == @equip_type - 1
end
return @actor.equippable?(item)
end
def enable?(item)
return true
end
end

#==============================================================================
# ** Scene_Equip
#==============================================================================
class Scene_Equip < Scene_Base
EQUIP_TYPE_MAX = 5 # Number of equip region
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
@equip_index = equip_index
end
def start
super
@actor = $game_party.members[@actor_index]
@msk_back1 = Plane.new
@msk_back1.bitmap = Cache.menu("Background")
@msk_lay = Sprite.new
if @actor.two_swords_style
@msk_lay.bitmap = Cache.menu("Equip_Lay2")
else
@msk_lay.bitmap = Cache.menu("Equip_Lay")
end
@help_window = Window_Help.new(42,362)
@help_window.opacity = 0
create_item_windows
@equip_window = Window_Equip.new(@actor)
@equip_window.help_window = @help_window
@equip_window.index = @equip_index
@status_window = Window_EquipStatus.new(0, 30, @actor)
end
def update
@help_window.update
@equip_window.update
update_status_window
update_item_windows
@msk_back1.ox += 1
if @equip_window.active
update_equip_selection
elsif @item_window.active
update_item_selection
end
end
def create_item_windows
@item_windows = []
for i in 0...EQUIP_TYPE_MAX
@item_windows[i] = Window_EquipItem.new(240, 208, 300, 170, @actor, i)
@item_windows[i].opacity = 0
@item_windows[i].help_window = @help_window
@item_windows[i].visible = (@equip_index == i)
@item_windows[i].active = false
@item_windows[i].index = -1
end
end
def update_status_window
if @equip_window.active
@status_window.set_new_parameters(nil, nil, nil, nil, nil, nil)
elsif @item_window.active
temp_actor = @actor.clone
temp_actor.change_equip(@equip_window.index, @item_window.item, true)
new_hp = temp_actor.hp
new_mp = temp_actor.mp
new_atk = temp_actor.atk
new_def = temp_actor.def
new_spi = temp_actor.spi
new_agi = temp_actor.agi
@status_window.set_new_parameters(new_hp, new_mp,new_atk, new_def, new_spi, new_agi)
end
@status_window.update
end
def terminate
super
@msk_lay.dispose
@help_window.dispose
@equip_window.dispose
@status_window.dispose
dispose_item_windows
end
def update_equip_selection
if Input.trigger?(Input::cool.gif
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::RIGHT)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::LEFT)
Sound.play_cursor
prev_actor
elsif Input.trigger?(Input::C)
if @actor.fix_equipment
Sound.play_buzzer
else
Sound.play_decision
@equip_window.active = false
@item_window.active = true
@item_window.index = 0
end
end
end
end
incarnum
QUOTE (incarnum @ Sep 26 2011, 08:29 PM) *
Im not sure if anyone still uses these forums but, im having an issue with the mog equip menu.

to be specific, the part of the menu where it shows the list of equipment you have in your backpack and how many of each of those things you have.

not only is there not enough space to show the full name of any of my gear, but the quantity of that gear overlaps the name of the gear.


So I appologize for necro posting but i solved the problem myself.

the problem was not in the mog code at all, but in order to make the mog equip menu work properly, you need to make an adjustment to the rpgmaker vx "window_Item" script.

you need to make it so that your items only show up in a single column, wrather then 2 columns, otherwise they either overlap the inventory count, in mog equip, or the names of your equipment go off screen.

so go to "window_item" script and change line 17 "@column_max = 2"

simply change that 2 to a 1 so that it reads "@column_max = 1"

and wala! the formatting of your equip screen will work now.

if this was useful, please pm me! I had fun solving this very elusive yet seemingly simple puzzle, as i thought it was a problem with the mog script.

(keep in mind that this will alter item menu used in the game so if you need 2 columns in your item menu, the mog menu isnt compatible for you without an overhaul)
Toonbob20
Sry, I'm a little new to Rpg Maker, and I'm using your menu script. I'm pretty sure I installed it correctly. But when I go into battle and choose "Skills" It gives me the error Script 'Skill Shop' line 133: NoMethodError undefined method 'each' for nil:NilClass
ummm help plz?
hit268

Can someone please help me? I keep getting these errors when I put the script in my rpg.
lightspeed15
Can someone reupload this? Sorry for the necro :/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.