03-08-2008, 01:09 AM 
	
	
	Variable Image Menu
by Mac
by Mac
Introduction
This was one of the menu requests i did, it was made for Kururu on her specifics and she has allowed it to be used for public use, so you guys are free to use, its nothing extraordinary but it does the job

Screenshots
![[Image: kururusmenuzw9.png]](http://img262.imageshack.us/img262/3199/kururusmenuzw9.png)
Instructions
Replace Window_Base with this:-
 Content Hidden
  			Code:
# ** Window_Base Editted by Mac
#------------------------------------------------------------------------------
#  This class is for all in-game windows.
#==============================================================================
class Window_Base < Window
 #--------------------------------------------------------------------------
 # * Object Initialization
 #     x      : window x-coordinate
 #     y      : window y-coordinate
 #     width  : window width
 #     height : window height
 #--------------------------------------------------------------------------
 def initialize(x, y, width, height)
   super()
   @windowskin_name = $game_system.windowskin_name
   self.windowskin = RPG::Cache.windowskin(@windowskin_name)
   self.x = x
   self.y = y
   self.width = width
   self.height = height
   self.z = 100
 end
 #--------------------------------------------------------------------------
 # * Dispose
 #--------------------------------------------------------------------------
 def dispose
   # Dispose if window contents bit map is set
   return if disposed?
   if self.contents != nil
     self.contents.dispose
   end
   super
 end
 #--------------------------------------------------------------------------
 # * Get Text Color
 #     n : text color number (0-7)
 #--------------------------------------------------------------------------
 def text_color(n)
   case n
   when 0
     return Color.new(255, 255, 255, 255)
   when 1
     return Color.new(128, 128, 255, 255)
   when 2
     return Color.new(255, 128, 128, 255)
   when 3
     return Color.new(128, 255, 128, 255)
   when 4
     return Color.new(128, 255, 255, 255)
   when 5
     return Color.new(255, 128, 255, 255)
   when 6
     return Color.new(255, 255, 128, 255)
   when 7
     return Color.new(192, 192, 192, 255)
   else
     normal_color
   end
 end
 #--------------------------------------------------------------------------
 # * Get Normal Text Color
 #--------------------------------------------------------------------------
 def normal_color
   return Color.new(255, 255, 255, 255)
 end
 #--------------------------------------------------------------------------
 # * Get Disabled Text Color
 #--------------------------------------------------------------------------
 def disabled_color
   return Color.new(255, 255, 255, 128)
 end
 #--------------------------------------------------------------------------
 # * Get System Text Color
 #--------------------------------------------------------------------------
 def system_color
   return Color.new(192, 224, 255, 255)
 end
 #--------------------------------------------------------------------------
 # * Get Crisis Text Color
 #--------------------------------------------------------------------------
 def crisis_color
   return Color.new(255, 255, 64, 255)
 end
 #--------------------------------------------------------------------------
 # * Get Knockout Text Color
 #--------------------------------------------------------------------------
 def knockout_color
   return Color.new(255, 64, 0)
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   super
   # Reset if windowskin was changed
   if $game_system.windowskin_name != @windowskin_name
     @windowskin_name = $game_system.windowskin_name
     self.windowskin = RPG::Cache.windowskin(@windowskin_name)
   end
 end
 #--------------------------------------------------------------------------
 # * Draw Graphic
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_graphic(actor, x, y)
   bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
   cw = bitmap.width / 4
   ch = bitmap.height / 4
   src_rect = Rect.new(0, 0, cw, ch)
   self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
 end
 #--------------------------------------------------------------------------
 # * Draw Face
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
   def draw_face(actor, x, y)
   bitmap = RPG::Cache.picture("Faces/#{actor.character_name}")
   self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
 end
 #--------------------------------------------------------------------------
 # * Draw Image
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
   def draw_image(picture, x, y)
   bitmap = RPG::Cache.picture("Images/#{$image_name}")
   self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
 end
 #--------------------------------------------------------------------------
 # * Draw Name
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_name(actor, x, y)
   self.contents.font.color = normal_color
   self.contents.draw_text(x, y, 120, 32, actor.name)
 end
 #--------------------------------------------------------------------------
 # * Draw Class
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_class(actor, x, y)
   self.contents.font.color = normal_color
   self.contents.draw_text(x, y, 236, 32, actor.class_name)
 end
 #--------------------------------------------------------------------------
 # * Draw Level
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_level(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
 #--------------------------------------------------------------------------
 # * Make State Text String for Drawing
 #     actor       : actor
 #     width       : draw spot width
 #     need_normal : Whether or not [normal] is needed (true / false)
 #--------------------------------------------------------------------------
 def make_battler_state_text(battler, width, need_normal)
   # Get width of brackets
   brackets_width = self.contents.text_size("[]").width
   # Make text string for state names
   text = ""
   for i in battler.states
     if $data_states[i].rating >= 1
       if text == ""
         text = $data_states[i].name
       else
         new_text = text + "/" + $data_states[i].name
         text_width = self.contents.text_size(new_text).width
         if text_width > width - brackets_width
           break
         end
         text = new_text
       end
     end
   end
   # If text string for state names is empty, make it [normal]
   if text == ""
     if need_normal
       text = "[Normal]"
     end
   else
     # Attach brackets
     text = "[" + text + "]"
   end
   # Return completed text string
   return text
 end
 #--------------------------------------------------------------------------
 # * Draw State
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #     width : draw spot width
 #--------------------------------------------------------------------------
 def draw_actor_state(actor, x, y, width = 120)
   text = make_battler_state_text(actor, width, true)
   self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
   self.contents.draw_text(x, y, width, 32, text)
 end
 #--------------------------------------------------------------------------
 # * Draw EXP
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_actor_exp(actor, x, y)
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, 24, 32, "E")
   self.contents.font.color = normal_color
   self.contents.draw_text(x + 24, y, 84, 32, actor.exp_s, 2)
   self.contents.draw_text(x + 108, y, 12, 32, "/", 1)
   self.contents.draw_text(x + 120, y, 84, 32, actor.next_exp_s)
 end
 #--------------------------------------------------------------------------
 # * Draw HP
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #     width : draw spot width
 #--------------------------------------------------------------------------
 def draw_actor_hp(actor, x, y, width = 144)
   self.contents.font.color = system_color
   # Draw "HP" text string
   self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
   # Calculate if there is draw space for MaxHP
   if width - 32 >= 108
     hp_x = x + width - 108
     flag = true
   elsif width - 32 >= 48
     hp_x = x + width - 48
     flag = false
   end
   # Draw HP
   self.contents.font.color = actor.hp == 0 ? knockout_color :
     actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
   if self.is_a?(Window_KururusMenu)
   self.contents.draw_text(hp_x, y, 175, 32, actor.hp.to_s, 2)
 else
   self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
   end
   # Draw MaxHP
   if flag
     self.contents.font.color = normal_color
         if self.is_a?(Window_KururusMenu)
     self.contents.draw_text(hp_x + 175, y, 12, 32, "/", 1)
     self.contents.draw_text(hp_x + 190, y, 48, 32, actor.maxhp.to_s)
         else
     self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
     self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
   end
   end
 end
 #--------------------------------------------------------------------------
 # * Draw SP
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #     width : draw spot width
 #--------------------------------------------------------------------------
 def draw_actor_sp(actor, x, y, width = 144)
   # Draw "SP" text string
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
   # Calculate if there is draw space for MaxHP
   if width - 32 >= 108
     sp_x = x + width - 108
     flag = true
   elsif width - 32 >= 48
     sp_x = x + width - 48
     flag = false
   end
   # Draw SP
   self.contents.font.color = actor.sp == 0 ? knockout_color :
     actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
     if self.is_a?(Window_KururusMenu)
   self.contents.draw_text(sp_x, y, 175, 32, actor.sp.to_s, 2)
 else
   self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
       end
   # Draw MaxSP
   if flag
     self.contents.font.color = normal_color
     if self.is_a?(Window_KururusMenu)
     self.contents.draw_text(sp_x + 175, y, 12, 32, "/", 1)
     self.contents.draw_text(sp_x + 190, y, 48, 32, actor.maxsp.to_s)
   else
     self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
     self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
    end
  end
 end
 #--------------------------------------------------------------------------
 # * Draw Parameter
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #     type  : parameter type (0-6)
 #--------------------------------------------------------------------------
 def draw_actor_parameter(actor, x, y, type)
   case type
   when 0
     parameter_name = $data_system.words.atk
     parameter_value = actor.atk
   when 1
     parameter_name = $data_system.words.pdef
     parameter_value = actor.pdef
   when 2
     parameter_name = $data_system.words.mdef
     parameter_value = actor.mdef
   when 3
     parameter_name = $data_system.words.str
     parameter_value = actor.str
   when 4
     parameter_name = $data_system.words.dex
     parameter_value = actor.dex
   when 5
     parameter_name = $data_system.words.agi
     parameter_value = actor.agi
   when 6
     parameter_name = $data_system.words.int
     parameter_value = actor.int
   end
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, 120, 32, parameter_name)
   self.contents.font.color = normal_color
   self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
 end
 #--------------------------------------------------------------------------
 # * Draw Item Name
 #     item : item
 #     x    : draw spot x-coordinate
 #     y    : draw spot y-coordinate
 #--------------------------------------------------------------------------
 def draw_item_name(item, x, y)
   if item == nil
     return
   end
   bitmap = RPG::Cache.icon(item.icon_name)
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
   self.contents.font.color = normal_color
   self.contents.draw_text(x + 28, y, 212, 32, item.name)
 end
endNote
You must create 2 folders inside "Pictures" one called "Images" and the other "Faces", in images you must place the images you want to change the bottom right images too at any point and in Faces you must place Faces names correctly to the sprites name e.g. by default Arshes = 001-Fighter01 so you would need to call it that.
And finally before you can open your menu you must define an image to the image box to the bottom right, i made this as simple as possible for you, all you need to do is using the call script command and call:-
Code:
$image_name = "imagenamehere"- Max Face size is 70 x 70
 
- Max Image size is 128 x 132
 
Mac

 
 
 Variable Image Menu
 Variable Image Menu 
