sorry it took so long to get Halestorm's done
but here it is
#===============================================================================
# NAMKCOR's Requested 2-Member-CMS v1.00
#-------------------------------------------------------------------------------
# Features:
# > Upgraded Item Menu
# -- Displays all items, how many in stock, and their sell price
# > Upgraded Status Menu
# -- Streamlined design shows all necessary character information
# > Upgraded Main Menu
# -- Shows both characters, icons for all their equipment, location window
# gold and time windows
# -- Icon display designed for use with Gullaime777's Multi-Slot-Equipment
# if you aren't using the aforementioned script, but wish to use this
# menu, PM/email me and I'll make a version for use without it
#-------------------------------------------------------------------------------
# Compatability:
# Most likely incompatable with other CMSes
# Most likely SDK compatable
# Battler display WILL bug with ANY Animated Side View CBS
# -No Known Incompatability Issues-
#-------------------------------------------------------------------------------
# Versions History:
# 1.00 - Finished all features, most likely bug free
#-------------------------------------------------------------------------------
# Bugs and Incompatability:
# If you find bugs or incompatability issues with this script, contact me and
# I will do what I can to make it compatable/fix whatever bugs you find
#-------------------------------------------------------------------------------
# Contact Info:
# RMRK - NAMKCOR
# ChaosProject - NAMKCOR
# IMGHQ - NAMKCOR
# E-Mail - Rockman922@aol.com -or- rockmanamkcor@yahoo.com
#-------------------------------------------------------------------------------
# Special Thanks:
# Halestorm5 - for giving me my first CMS request :D
#-------------------------------------------------------------------------------
# This menu was created for Halestorm5 on rmrk
# This menu is only to be posted on RPG Maker Resource Kit, Chaos Project, and
# Infernal Monkey Games IQ (rmrk.net, chaosproject.co.nr, imghq.co.nr)
# if this script is posted on any site other than the ones mentioned above
# it is stolen and I would like to be contacted immediately
#===============================================================================
#===============================================================
#DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING!
#===============================================================
#-------------------------------------------------------------------------------
# Main Menu : Has : WindowStatus, Location, Gold, Time, Command Window
#-------------------------------------------------------------------------------
class Window_MenuStatus < Window_Selectable
def initialize
super(0, 0, 440, 240)
@column_max = 2
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 10 + 200 * i
y = 5
actor = $game_party.actors[i]
if actor != nil
battler= RPG::Cache.battler(actor.battler_name, actor.battler_hue)
self.contents.blt(25 + 200*i, 23, battler, Rect.new(0, 0, 319, 340))
draw_actor_name(actor, x, y)
draw_actor_hp(actor, x,150,172)
draw_actor_sp(actor, x, 170, 172)
end
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(@index * 200, 0, 200, self.height - 32)
end
end
end
class EQ_Window < Window_Base
def initialize(id)
super(0,0,220,60)
self.contents = Bitmap.new(width - 32, height - 32)
refresh(id)
end
def refresh(id)
actor = $game_party.actors[id]
item = actor.equipments
for i in 0...item.size
if item[i] != nil
bitmap = RPG::Cache.icon(item[i].icon_name)
self.contents.blt(30*i, 0, bitmap, Rect.new(0, 0, 24, 24))
end
end
end
end
class Location_Window < Window_Base
def initialize
super(200,360,250,60)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
data = load_data("Data/MapInfos.rxdata")
self.contents.draw_text(0,0,227,28,data[$game_map.map_id].name, 0)
end
end
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
@spriteset = Spriteset_Map.new
# Drawing up the command window
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Save"
s6 = "End Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
@command_window.x = 472
@command_window.y = 30
# When party number of people 0 is
if $game_party.actors.size == 0
# Nullifying the item, skill, equipment and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# In case of saving prohibition
if $game_system.save_disabled
# Saving is made invalid
@command_window.disable_item(4)
end
@p1_window = EQ_Window.new (0)
@p1_window.x = 25
@p1_window.y = 290
@p2_window = EQ_Window.new (1)
@p2_window.x = 245
@p2_window.y = 290
@locationiseverything = Location_Window.new
# Drawing up the play time window
@playtime_window = Window_PlayTime.new
@playtime_window.x = 25
@playtime_window.y = 360
# Drawing up the Goldwyn dough
@gold_window = Window_Gold.new
@gold_window.x = 472
@gold_window.y = 360
# Drawing up the status window
@status_window = Window_MenuStatus.new
@status_window.x = 25
@status_window.y = 50
# Transition execution
Graphics.transition
# Main loop
loop do
# Renewing the game picture
Graphics.update
# Updating the information of input
Input.update
# ??????
update
# When the picture changes, discontinuing the loop
if $scene != self
break
end
end
# Transition preparation
Graphics.freeze
# Releasing the window
@command_window.dispose
@playtime_window.dispose
@gold_window.dispose
@status_window.dispose
@p1_window.dispose
@p2_window.dispose
@locationiseverything.dispose
@spriteset.dispose
end
def update
# Renewing the window
@command_window.update
@playtime_window.update
@gold_window.update
@status_window.update
@p1_window.refresh(0)
@p2_window.refresh(1)
@locationiseverything.refresh
@spriteset.update
# When the command window is active,: Update_command is called
if @command_window.active
update_command
return
end
# When the status window is active,: Update_status is called
if @status_window.active
update_status
return
end
end
end
#-------------------------------------------------------------------------------
# Inventory : Has : description, stock window, stock selector, target selector
#-------------------------------------------------------------------------------
class Window_Help < Window_Base
def initialize
super(0, 0, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
end
end
class Window_Item < Window_Selectable
def initialize
if !$game_temp.in_battle
super(320, 64, 320, 416)
@column_max = 1
refresh
self.index = 0
else
super(0, 64, 640, 416)
@column_max = 2
refresh
self.index = 0
self.y = 64
self.height = 256
self.back_opacity = 160
end
end
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
if !$game_temp.in_battle
x = 4
y = index * 32
else
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
end
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
if !$game_temp.in_battle
self.contents.blt(x+256, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, "|", 1)
else
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
end
end
class Window_Target < Window_Selectable
def initialize
super(0, 0, 336, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.z += 10
@item_max = $game_party.actors.size
refresh
end
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
x = 4
y = i * 116
actor = $game_party.actors[i]
draw_actor_name(actor, x, y)
draw_actor_class(actor, x + 144, y)
draw_actor_level(actor, x + 8, y + 32)
draw_actor_state(actor, x + 8, y + 64)
draw_actor_hp(actor, x + 152, y + 32)
draw_actor_sp(actor, x + 152, y + 64)
draw_actor_graphic(actor, x + 80, y + 55)
end
end
end
class Window_Stock < Window_Base
def initialize
super(0, 355,320, 125)
self.contents = Bitmap.new(width - 32, height - 32)
end
def update_stock(item)
self.contents.clear
self.contents.font.name = $fontface
number = $game_party.item_number(item.id)
if item != nil
@price = item.price / 2
self.contents.draw_text(200, 0, 24, 32, number.to_s, 2)
self.contents.draw_text(125,40,100,32, @price.to_s,2)
end
self.contents.draw_text(0,40, 320, 32, "Sell Price:",0)
self.contents.draw_text(0,0,168,32, "Stock :", 0)
end
end
class Scene_Item
def main
@spriteset = Spriteset_Map.new
@help_window = Window_Help.new
@item_window = Window_Item.new
if !$game_temp.in_battle
@stock_window = Window_Stock.new
end
@item_window.help_window = @help_window
@target_window = Window_Target.new
@target_window.visible = false
@target_window.active = false
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
if !$game_temp.in_battle
@stock_window.dispose
end
@help_window.dispose
@item_window.dispose
@target_window.dispose
@spriteset.dispose
end
alias update_old update_item
def update_item
@item = @item_window.item
@spriteset.update
if !$game_temp.in_battle
@stock_window.update_stock(@item)
end
update_old
end
end
#-------------------------------------------------------------------------------
# Status : Has : Battler/etc, Stats
#-------------------------------------------------------------------------------
class Status_Actor < Window_Base
def initialize(actor)
super(0, 70, 319, 340)
self.contents = Bitmap.new(width - 32, height - 32)
refresh(actor)
end
def refresh(actor)
self.contents.clear
draw_actor_name(actor, 0,0)
draw_actor_class(actor,175,0)
draw_actor_level(actor, 0, 24)
draw_actor_graphic(actor, 210, 90)
battler= RPG::Cache.battler(actor.battler_name, actor.battler_hue)
self.contents.blt(40, 75, battler, Rect.new(0, 0, 319, 340))
draw_actor_state(actor, 105, 280)
end
end
class Actor_Stats < Window_Base
def initialize(actor)
super(319,70,320,340)
self.contents = Bitmap.new(width-32, height-32)
refresh(actor)
end
def refresh(actor)
self.contents.clear
self.contents.draw_text(0,0,80,32,"________________")
self.contents.draw_text(0, 0, 80, 32, "STATS")
draw_actor_hp(actor, 60,32,172)
draw_actor_sp(actor, 60,64,172)
for i in 0...6
draw_actor_parameter(actor,60, 96+32*i, i)
end
end
end
class Scene_Status
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
def main
@spriteset = Spriteset_Map.new
# Acquiring the actor
@actor = $game_party.actors[@actor_index]
# Drawing up the actor's image Window and stats window
@window_actor = Status_Actor.new(@actor)
@window_stats = Actor_Stats.new(@actor)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_actor.dispose
@window_stats.dispose
@spriteset.dispose
end
end
I've almost got SirJackRex's done too