Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 A fourth column in MOG Scene Item Laura V1.2
#1
Hello, I need help with MOG Scene Item Laura V1.2 .
The script is Moghunters Item menu, it allows to have a custom Item menu with pictures. Problem is, that the script only makes 3 catagories for Items/gears/ and weapons.
I want a additional fourth catagory called miscellaneous where different nonusuable items should be listed.
It should be defineable by the script to define what item is listed miscellaneous or not.
Like for example: MogMiscellaneous_Items = [51, 55, 98]
The numbers are the id from the item database.
So, basically I need someone to edit the MOG Scene Item Laura in way where it is possible to have 4 catagories instead of 3.
Heres the script:


Code:
#_______________________________________________________________________________
# MOG Scene Item Laura V1.2            
#_______________________________________________________________________________
# By Moghunter  
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Transition Time.
MNIT = 20
#Transition Type(Name).
MNITT = "007-Line01"  
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_laura"] = true
###############
# Window_Base #
###############
class Window_Base < Window
def nada
face = RPG::Cache.picture("")
end    
def drw1_face(actor,x,y)
face = RPG::Cache.picture(actor.name + "_iii") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)    
end  
def draw_maphp3(actor, x, y)
back = RPG::Cache.picture("BAR0")    
cw = back.width  
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)    
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("HP_Bar")    
cw = meter.width  * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("HP_Tx")    
cw = text.width  
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)    
end  
def draw_mapsp3(actor, x, y)
back = RPG::Cache.picture("BAR0")    
cw = back.width  
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)    
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("SP_Bar")    
cw = meter.width  * actor.sp / actor.maxsp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("SP_Tx")    
cw = text.width  
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.sp.to_s, 2)    
end  
def draw_mexp_it(actor, x, y)
lv_tx = RPG::Cache.picture("LV_tx")
cw = lv_tx.width
ch = lv_tx.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 32, lv_tx, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 101, y + 5, 24, 32, actor.level.to_s, 1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 100, y + 4, 24, 32, actor.level.to_s, 1)
end
def draw_actor_state_it(actor, x, y, width = 80)
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,1)
end
end
######################
# Window_Target_Item #
######################
class Window_Target_Item < Window_Selectable
 def initialize
   super(0, 130, 280, 300)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = "Tahoma"
   self.contents.font.size = 14
   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 * 65
     actor = $game_party.actors[i]
     drw1_face(actor,x,y + 55)
     if $mogscript["TP_System"] == true
     draw_actor_tp(actor, x + 168, y + 27 ,4)
     else  
     draw_mexp_it(actor, x + 110, y + 25 )
     end
     draw_actor_state_it(actor, x + 165, y )
     draw_maphp3(actor, x + 20, y + 0)
     draw_mapsp3(actor, x + 20, y + 32)
   end
 end
 def update_cursor_rect
   if @index <= -2
     self.cursor_rect.set(0, (@index + 10) * 65, self.width - 32, 60)
   elsif @index == -1
     self.cursor_rect.set(0, 0, self.width - 32, @item_max * 64 )
   else
     self.cursor_rect.set(0, @index * 65, self.width - 32, 60)
   end
 end
end
############
# Type_Sel #
############
class Type_Sel < Window_Base
 attr_reader   :index                    
 attr_reader   :help_window            
 def initialize(x, y, width, height)
   super(x, y, width, height)
   @item_max = 1
   @column_max = 1
   @index = -1
 end
 def index=(index)
   @index = index
 end
 def row_max
   return (@item_max + @column_max - 1) / @column_max
 end
 def top_row
   return self.oy / 32
 end
 def top_row=(row)
   if row < 0
     row = 0
   end
   if row > row_max - 1
     row = row_max - 1
   end
   self.oy = row * 32
 end
 def page_row_max
   return (self.height - 32) / 32
 end
 def page_item_max
   return page_row_max * @column_max
 end
 def update
   super
   if self.active and @item_max > 0 and @index >= 0
     if Input.repeat?(Input::RIGHT)
       if (@column_max == 1 and Input.trigger?(Input::RIGHT)) or
          @index < @item_max - @column_max
         $game_system.se_play($data_system.cursor_se)
         @index = (@index + @column_max) % @item_max
       end
     end
     if Input.repeat?(Input::LEFT)
       if (@column_max == 1 and Input.trigger?(Input::LEFT)) or
          @index >= @column_max
         $game_system.se_play($data_system.cursor_se)
         @index = (@index - @column_max + @item_max) % @item_max
       end
     end
   end
 end
end
###############
# Window_Type #
###############
class Window_Type < Type_Sel
 def initialize
   super(0, 0, 0, 0)
   @item_max = 3
   self.index = 0
 end
end
##################
# Window_Item_Ex #
##################
class Window_Item_Ex < Window_Selectable
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
   if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
 def item
   return @data[self.index]
 end
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 1...$data_items.size
     if $game_party.item_number(i) > 0
       @data.push($data_items[i])
     end
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 def draw_item(index)
   item = @data[index]
   case item
   when RPG::Item
     number = $game_party.item_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
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Tahoma"
   self.contents.font.size = 14
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end
#################
# Window_Weapon #
#################
class Window_Weapon < Window_Selectable
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
    if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
 def item
   return @data[self.index]
 end
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
     for i in 1...$data_weapons.size
       if $game_party.weapon_number(i) > 0
         @data.push($data_weapons[i])
       end
     end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 def draw_item(index)
   item = @data[index]
   case item
   when RPG::Weapon
     number = $game_party.weapon_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
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Tahoma"
   self.contents.font.size = 14
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end
################
# Window_Armor #
################
class Window_Armor < Window_Selectable
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
   if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
 def item
   return @data[self.index]
 end
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
     for i in 1...$data_armors.size
       if $game_party.armor_number(i) > 0
         @data.push($data_armors[i])
       end
     end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 def draw_item(index)
   item = @data[index]
   case item
   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
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Tahoma"  
   self.contents.font.size = 14
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end
##############
# Scene_Item #
##############
class Scene_Item
 def main
   @back = Sprite.new
   @back.bitmap = RPG::Cache.picture("ItemBackgroundMenu01")
   @back.z = 100
   @item_lay = Sprite.new
   @item_lay.bitmap = RPG::Cache.picture("Item_lay")
   @item_lay.z = 100
   @item_com = Sprite.new
   @item_com.bitmap = RPG::Cache.picture("Item_com01")
   @item_com.z = 100
   @type = Window_Type.new
   @type.opacity = 0
   @type.visible = false    
   @help_window = Window_Help.new
   @help_window.y = 405
   @item_window = Window_Item_Ex.new
   @item_window.help_window = @help_window
   @item_window.visible = true
   @item_window.active = true
   @weapon_window = Window_Weapon.new
   @weapon_window.help_window = @help_window
   @weapon_window.visible = false
   @weapon_window.active = true
   @armor_window = Window_Armor.new
   @armor_window.help_window = @help_window
   @armor_window.visible = false
   @armor_window.active = true    
   @target_window = Window_Target_Item.new
   @target_window.x = -270
   @target_window.active = false
   @help_window.opacity = 0
   @help_window.x = -200
   @help_window.contents_opacity = 0    
   @item_window.opacity = 0
   @weapon_window.opacity = 0
   @armor_window.opacity = 0
   @target_window.opacity = 0    
   @weapon_window.x = 640
   @armor_window.x = 640
   @item_window.x = 640  
   @weapon_window.contents_opacity = 0
   @armor_window.contents_opacity = 0
   @item_window.contents_opacity = 0      
   Graphics.transition(MOG::MNIT, "Graphics/Transitions/" + MOG::MNITT)
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   for i in 0..30
   @weapon_window.x += 20
   @armor_window.x += 20
   @item_window.x += 20  
   @weapon_window.contents_opacity -= 15
   @armor_window.contents_opacity -= 15
   @item_window.contents_opacity -= 15    
   @item_lay.zoom_x += 0.2
   @item_lay.opacity -= 15
   @item_com.zoom_y += 0.2
   @item_com.opacity -= 15
   @target_window.x -= 15
   @help_window.contents_opacity -= 15
   #@back.ox += 1
   Graphics.update  
   end  
   Graphics.freeze
   @help_window.dispose
   @item_window.dispose
   @weapon_window.dispose
   @armor_window.dispose
   @target_window.dispose
   @item_lay.dispose
   @back.dispose
   @item_com.dispose
   @type.dispose
 end
 def update
   if @target_window.active == true
      @target_window.visible = true
   if @target_window.x < 0
      @target_window.x += 20
   elsif @target_window.x >= 0
      @target_window.x = 0      
   end  
   else
   if @target_window.x > -300
      @target_window.x -= 20
   elsif @target_window.x >= -300
      @target_window.x = -270
      @target_window.visible = false
   end
   end    
   if @help_window.x < 0
   @help_window.x += 10
   @help_window.contents_opacity += 15    
   elsif @help_window.x >= 0
   @help_window.x = 0
   @help_window.contents_opacity = 255    
   end
   if @item_window.x > 269
   @weapon_window.x -= 20
   @armor_window.x -= 20
   @item_window.x -= 20  
   @weapon_window.contents_opacity += 15
   @armor_window.contents_opacity += 15
   @item_window.contents_opacity += 15    
   elsif  @item_window.x <= 269
   @weapon_window.x = 269
   @armor_window.x = 269
   @item_window.x = 269
   @weapon_window.contents_opacity = 250
   @armor_window.contents_opacity = 250
   @item_window.contents_opacity = 250      
   end
   if @target_window.active == false
   if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) or
      Input.press?(Input::RIGHT) or  Input.press?(Input::LEFT)
   @weapon_window.x = 640
   @armor_window.x = 640
   @item_window.x = 640      
   @weapon_window.contents_opacity = 0
   @armor_window.contents_opacity = 0
   @item_window.contents_opacity = 0      
   end
   if Input.trigger?(Input.dir4) or Input.trigger?(Input.dir4) or
      Input.trigger?(Input::L) or Input.trigger?(Input::R)      
   @help_window.x = -200
   @help_window.contents_opacity = 0
   end  
   end
   #@back.ox += 1
   @help_window.update
   @item_window.update
   @weapon_window.update
   @armor_window.update
   @target_window.update
   @type.update
   case @type.index
   when 0
   @item_com.bitmap = RPG::Cache.picture("Item_com01")
   if @target_window.active == true
     update_target
     @item_window.active = false  
     @type.active = false
     return
   else  
     @item_window.active = true
     @type.active = true
   end    
   @weapon_window.active = false
   @armor_window.active = false
   @item_window.visible = true
   @weapon_window.visible = false
   @armor_window.visible = false    
   when 1
   @item_com.bitmap = RPG::Cache.picture("Item_com02")
   @item_window.active = false
   @weapon_window.active = true
   @armor_window.active = false
   @item_window.visible = false
   @weapon_window.visible = true
   @armor_window.visible = false    
   when 2
   @item_com.bitmap = RPG::Cache.picture("Item_com03")  
   @item_window.active = false
   @weapon_window.active = false
   @armor_window.active = true
   @item_window.visible = false
   @weapon_window.visible = false
   @armor_window.visible = true
   end
   if @item_window.active
     update_item
     return
   end
   if @weapon_window.active
     update_weapon
     return
   end
   if @armor_window.active
     update_armor
     return
   end
 end
 def update_weapon
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
 end
 def update_armor
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
 end
 def update_item
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
   if Input.trigger?(Input::C)
     @item = @item_window.item
     unless @item.is_a?(RPG::Item)
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     unless $game_party.item_can_use?(@item.id)
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     if @item.scope >= 3
       @item_window.active = false
       @target_window.x = (@item_window.index + 1) % 1 * 304
       @target_window.active = true
       @target_window.x = -350              
       if @item.scope == 4 || @item.scope == 6
         @target_window.index = -1
       else
         @target_window.index = 0
       end
     else
       if @item.common_event_id > 0
         $game_temp.common_event_id = @item.common_event_id
         $game_system.se_play(@item.menu_se)
         if @item.consumable
           $game_party.lose_item(@item.id, 1)
           @item_window.draw_item(@item_window.index)
         end
         $scene = Scene_Map.new
         return
       end
     end
     return
   end
 end
 def update_target
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     unless $game_party.item_can_use?(@item.id)
       @item_window.refresh
     end
     @item_window.active = true
     @target_window.active = false
     return
   end
   if Input.trigger?(Input::C)
     if $game_party.item_number(@item.id) == 0
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     if @target_window.index == -1
       used = false
       for i in $game_party.actors
         used |= i.item_effect(@item)
       end
     end
     if @target_window.index >= 0
       target = $game_party.actors[@target_window.index]
       used = target.item_effect(@item)
     end
     if used
       $game_system.se_play(@item.menu_se)
       if @item.consumable
         $game_party.lose_item(@item.id, 1)
         @item_window.draw_item(@item_window.index)
       end
       @target_window.refresh
       if $game_party.all_dead?
         $scene = Scene_Gameover.new
         return
       end
       if @item.common_event_id > 0
         $game_temp.common_event_id = @item.common_event_id
         $scene = Scene_Map.new
         return
       end
     end
     unless used
       $game_system.se_play($data_system.buzzer_se)
     end
     return
   end
 end
end
Reply
#2
Hrm... not the revised one I made, eh?

Well.... it's not the cleanest code, but drop this below your item script:

Code:
#==============================================================================
# Extra ITEM for MOG_Scene_Item V1.3 by Moghunter  
#                http://www.atelier-rgss.com
#==============================================================================
#  Patch by DerVVulfman
#  
#  NOTE:  Requires the end user to rework their "Item_com" graphics to allow
#         for a 4th category, the 'Special' item type.  The format is:
#     Item_com01.png ... To have 4 items, the 1st window "Item" highlighted
#     Item_com02.png ... To have 4 items, the 2nd window "Weapon" highlighted
#     Item_com03.png ... To have 4 items, the 3rd window "Armor" highlighted
#     Item_com04.png ... To have 4 items, the 4th window "Special" highlighted
#
#   Special Items are items not visible in the normal Item bag, but are loca-
#   ted in the 4th category in the item window.  ONLY within the 4th window
#   will these items be found.
#
#   To define special items, place the IDs of these items within the
#   SpecialSelect array inside the MOG module.
#  
#
#  
#==============================================================================



module MOG
  
  SpecialSelect       = [1,2,3]   # List if items in the special/4th window
    
end



#==============================================================================
# ** Window_Item_Ex
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#  A total rewrite, so any other script using Window_Item is NOT compatible.
#==============================================================================

class Window_Item_Ex < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(special=false)
    super(250, 50, 295, 350)
    @column_max = 1
    @special    = special
    refresh
    self.index  = 0
    return unless $game_temp.in_battle
    self.y            = 64
    self.height       = 256
    self.back_opacity = 160
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear Window Contents / Area
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    # Erase Data
    @data = []
    # Sort through Items
    for i in 1...$data_items.size
      # And add only if party holds
      if $game_party.item_number(i) > 0
        # If special data, push only special IDs
        if @special == true
          @data.push($data_items[i]) if MOG::SpecialSelect.include?(i)
        # Otherwise, only push IDs that aren't special
        else
          @data.push($data_items[i]) unless MOG::SpecialSelect.include?(i)
        end
      end
    end
    # Clear Contents
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end  
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_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
    x = 4 + index % 1 * (288 + 32)
    y = index / 1 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.font.name = "Georgia"    
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128    
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
    self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
  end
end


class Window_Type < Type_Sel
  def initialize
    super(0, 0, 0, 0)
    @item_max = 4
    self.index = 0
  end
end



#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs item screen processing.
#==============================================================================

class Scene_Item
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Set the background and overlay images
    @back             = Plane.new
    @back.bitmap      = RPG::Cache.picture("MN_BK")
    @back.z           = 100
    @item_lay         = Sprite.new
    @item_lay.bitmap  = RPG::Cache.picture("Item_lay")
    @item_lay.z       = 100
    # Set the initial TYPE graphic
    @item_com         = Sprite.new
    @item_com.bitmap  = RPG::Cache.picture("Item_com01")
    @item_com.z       = 100
    # Create the invisible TYPE window (used for item type selection)
    @type             = Window_Type.new
    @type.opacity     = 0
    @type.visible     = false    
    # Set the help window
    @help_window      = Window_Help.new
    @help_window.y    = 405
    # Item Window
    @item_window                  = Window_Item_Ex.new
    @item_window.help_window      = @help_window
    @item_window.visible          = true
    @item_window.active           = true
    # Weapon Window
    @weapon_window                = Window_Weapon.new
    @weapon_window.help_window    = @help_window
    @weapon_window.visible        = false
    @weapon_window.active         = true
    # Armor Window
    @armor_window                 = Window_Armor.new
    @armor_window.help_window     = @help_window
    @armor_window.visible         = false
    @armor_window.active          = true    
    # Extra Item Window
    @item2_window                 = Window_Item_Ex.new(true)
    @item2_window.help_window     = @help_window
    @item2_window.visible         = false
    @item2_window.active          = true
    # Target Window
    @target_window                = Window_Target_Item.new
    @target_window.x              = -300
    @target_window.active         = false
    # Help Window
    @help_window.opacity          = 0
    @help_window.x                = -200
    @help_window.contents_opacity = 0    
    # Set Window Opacities
    @item_window.opacity    = 0
    @weapon_window.opacity  = 0
    @armor_window.opacity   = 0
    @item2_window.opacity   = 0
    @target_window.opacity  = 0    
    # Sex Window Positions
    @weapon_window.x      = 640
    @armor_window.x       = 640
    @item_window.x        = 640  
    @item2_window.x       = 640  
    # Set Window Contents Opacities
    @weapon_window.contents_opacity = 0
    @armor_window.contents_opacity  = 0
    @item_window.contents_opacity   = 0      
    @item2_window.contents_opacity  = 0      
    # Execute transition
    Graphics.transition(MOG::MNIT, "Graphics/Transitions/" + MOG::MNITT)
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      break if $scene != self
    end
    # Cycle through windows and hide
    for i in 0..10
      # Scroll the windows
      @weapon_window.x += 25
      @armor_window.x += 25
      @item_window.x += 25  
      @item2_window.x += 25  
      # Lower window opacities
      @weapon_window.contents_opacity -= 25
      @armor_window.contents_opacity -= 25
      @item_window.contents_opacity -= 25    
      @item2_window.contents_opacity -= 25    
      # Change item hud display
      @item_lay.zoom_x += 0.2
      @item_lay.opacity -= 25
      @item_com.zoom_y += 0.2
      @item_com.opacity -= 25
      @target_window.x -= 25
      @help_window.contents_opacity -= 25
      @back.ox += 2
      # Update game screen
      Graphics.update  
    end  
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @help_window.dispose
    @item_window.dispose
    @item2_window.dispose
    @weapon_window.dispose
    @armor_window.dispose
    @target_window.dispose
    @item_lay.dispose
    @back.dispose
    @item_com.dispose
    @type.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Scroll out the target window
    if @target_window.active == true
       @target_window.visible = true
      if @target_window.x < 0
         @target_window.x += 30
      elsif @target_window.x >= 0
         @target_window.x = 0      
      end  
    else
      if @target_window.x > -300
         @target_window.x -= 30
      elsif @target_window.x >= -300
         @target_window.x = -300
         @target_window.visible = false
      end
    end    
    # Scroll the help window
    if @help_window.x < 0
      @help_window.x += 15
      @help_window.contents_opacity += 20    
    elsif @help_window.x >= 0
      @help_window.x = 0
      @help_window.contents_opacity = 255    
    end
    # Scroll the window types
    if @item_window.x > 250
      @weapon_window.x -= 30
      @armor_window.x -= 30
      @item_window.x -= 30  
      @item2_window.x -= 30  
      @weapon_window.contents_opacity += 20
      @armor_window.contents_opacity += 20
      @item_window.contents_opacity += 20    
      @item2_window.contents_opacity += 20    
    elsif  @item_window.x <= 250
      @weapon_window.x  = 250
      @armor_window.x   = 250
      @item_window.x    = 250  
      @item2_window.x   = 250  
      @weapon_window.contents_opacity = 250
      @armor_window.contents_opacity  = 250
      @item_window.contents_opacity   = 250      
      @item2_window.contents_opacity  = 250      
    end
    # If no target window, allow type window control
    if @target_window.active == false
      if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) or
         Input.press?(Input::RIGHT) or  Input.press?(Input::LEFT)
        @weapon_window.x  = 640
        @armor_window.x   = 640
        @item_window.x    = 640      
        @item2_window.x   = 640      
        @weapon_window.contents_opacity = 0
        @armor_window.contents_opacity  = 0
        @item_window.contents_opacity   = 0      
        @item2_window.contents_opacity  = 0      
      end
      if Input.trigger?(Input.dir4) or Input.trigger?(Input.dir4) or
         Input.trigger?(Input::L) or Input.trigger?(Input::R)      
        @help_window.x = -200
        @help_window.contents_opacity = 0
      end  
    end
    # Perform minor background animation (scroll the background 1px right)
    @back.ox += 1
    # Update the windows
    @help_window.update
    @item_window.update
    @item2_window.update
    @weapon_window.update
    @armor_window.update
    @target_window.update
    @type.update
    # Branch on window-type
    case @type.index
    when 0 # Normal ITEM window
      @item_com.bitmap = RPG::Cache.picture("Item_com01")
      if @target_window.active == true
        update_target
        @item_window.active = false  
        @type.active = false
        return
      else  
        @item_window.active = true
        @type.active = true
      end    
      @weapon_window.active   = false
      @armor_window.active    = false
      @item2_window.active    = false
      @item_window.visible    = true
      @weapon_window.visible  = false
      @armor_window.visible   = false  
      @item2_window.visible   = false
    when 1 # New Weapon window
      @item_com.bitmap = RPG::Cache.picture("Item_com02")
      @item_window.active     = false
      @weapon_window.active   = true
      @armor_window.active    = false
      @item2_window.active    = false
      @item_window.visible    = false
      @weapon_window.visible  = true
      @armor_window.visible   = false  
      @item2_window.visible   = false
    when 2 # New Armor window
      @item_com.bitmap = RPG::Cache.picture("Item_com03")  
      @item_window.active     = false
      @weapon_window.active   = false
      @armor_window.active    = true
      @item2_window.active    = false
      @item_window.visible    = false
      @weapon_window.visible  = false
      @armor_window.visible   = true
      @item2_window.visible   = false
    when 3 # Extra Items window
      @item_com.bitmap = RPG::Cache.picture("Item_com04")
      if @target_window.active == true
        update_target
        @item2_window.active = false  
        @type.active = false
        return
      else  
        @item2_window.active = true
        @type.active = true
      end        
      @item_window.active     = false
      @weapon_window.active   = false
      @armor_window.active    = false
      @item_window.visible    = false
      @weapon_window.visible  = false
      @armor_window.visible   = false
      @item2_window.visible   = true
    end
    # Update the appropriate window if active, and exit method
    return update_item    if @item_window.active
    return update_weapon  if @weapon_window.active
    return update_armor   if @armor_window.active
    return update_item2   if @item2_window.active
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when special item window is active)
  #--------------------------------------------------------------------------
  def update_item2
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
      return
    end
    if Input.trigger?(Input::C)
      @item = @item_window.item
      unless @item.is_a?(RPG::Item)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      unless $game_party.item_can_use?(@item.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      if @item.scope >= 3
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 1 * 304
        @target_window.active = true
        @target_window.x = -350              
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      else
        if @item.common_event_id > 0
          $game_temp.common_event_id = @item.common_event_id
          $game_system.se_play(@item.menu_se)
          if @item.consumable
            $game_party.lose_item(@item.id, 1)
            @item_window.draw_item(@item_window.index)
          end
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
end

Remember, you now need to redo your graphics showing "ITEM / WEAPON / ARMOR" to now be "ITEM / WEAPON / ARMOR / MISC"
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]

Reply
#3
Wow, that one was one of the fastest replies I've ever seen in my life. You've replied in less than 4 hours and created 400 line code in that time? 
Thank you so much for the edit.
I forgot about the revised versions, can you give me the link and tell me what the difference was? I totally forgot.^^


I've a question. I forgot to tell you that I edited my Item menu a littile.
For example the @back.bitmap = RPG::Cache.picture("") in my code does NOT move, its a fixed image that is there. If I put your version however the image moves. Also the selection row in my edited version moved a little bit to the right side since I wanted it that way. But problem is that I forgot wich lines I edit to make it like that way, I also didint document it like I always do. I also have the feeling that the font in the first and fourth catagory is different from the rest.
Can you help me adjust the settings of your code to mine?
Reply
#4
First... If you look at Moggy's code, he made a new Window_Item class. So other scripts that alter the behavior of items in the Item Menu wouldn't likely function. And, I made a more detailed MOG module that has more things you can config or change without needing to edit the rest of the script. Not that you may not need to tweak other things, right?

Insofar as where to find the Revised versions I uploaded, you can find a demo HERE. Technically, you could just do a search for Moghunter in the forum and you'd find that I have separate posts for the Item, Skill, Equip and File scripts too. But they all share the same demo. And the demo includes the revised versions AND the originals.

As far as changes, I 'could' look at your copy and see what changes you made. But take a look at the Revised ones first. Truthfully, a patch would be needed to give you a 4th slot for items even for the revised version.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]

Reply
#5
(11-24-2016, 01:20 AM)DerVVulfman Wrote: First...  If you look at Moggy's code, he made a new Window_Item class.  So other scripts that alter the behavior of items in the Item Menu wouldn't likely function.  And, I made a more detailed MOG module that has more things you can config or change without needing to edit the rest of the script. Not that you may not need to tweak other things, right?

Insofar as where to find the Revised versions I uploaded, you can find a demo HERE.  Technically, you could just do a search for Moghunter in the forum and you'd find that I have separate posts for the Item, Skill, Equip and File scripts too.  But they all share the same demo.  And the demo includes the revised versions AND the originals.

As far as changes, I 'could' look at your copy and see what changes you made.  But take a look at the Revised ones first.  Truthfully, a patch would be needed to give you a 4th slot for items even for the revised version.

I really dont want to make more trouble for you, Maybe Im going to use your revised version if you dont mind creating a 4fourth coloum for it. Because I know that you work on different things too.
Btw. I remembered how I fixed the image so that it doesnt move.
On line 461 i commented the line @back.ox += 1 out with a #. So the line needs to be: 

Code:
#@back.ox += 1


Also on line 529 I changed the whole line to  

Code:
#@back.ox += 1

But I forgot how to change the selection row so that it goes a little bit to the right.
I believe it is on line 505 -511 somewhere I changed:

Code:
elsif  @item_window.x <= 269

    @weapon_window.x = 269
    @armor_window.x = 269
    @item_window.x = 269 
    @weapon_window.contents_opacity = 250
    @armor_window.contents_opacity = 250
    @item_window.contents_opacity = 250  
Reply
#6
Yeaaah... My revised version of the Item menu used "ITEM_FX" to set the background's scrolling option. Set it to 1 to make the background still, or 2 to make it invisible so the map shows from underneath.

First, give the revised one a shot and see how you like it first. Then hit me up here Winking
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]

Reply
#7
I find the revised version better. And I would replace it with mine. That's for definite. but when I use it I got a black font for the items color.
Reply
#8
Enjoy reading the configurable sections. The ITEM_FONT_COLOR value sets the RGB color of your item fonts. Currently set to (0,0,0), it's giving a black color. And that is specific for your Item menu. Each menu has its own set to work with.

So I guess it's a go-ahead then on the 4th column?
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]

Reply
#9
(11-24-2016, 07:16 PM)DerVVulfman Wrote: Enjoy reading the configurable sections.  The ITEM_FONT_COLOR value sets the RGB color of your item fonts.  Currently set to (0,0,0), it's giving a black color.   And that is specific for your Item menu.  Each menu has its own set to work with.

So I guess it's a go-ahead then on the 4th column?

You're right, I'm sorry. I always mistake 255 255 255 for white and 0 0 0 for black. My bad.
Well, yes. But do it only if you have time and if it doesnt bother you. I know that you also work on another issues like a dancing script or what ever.
Thanks.
Reply
#10
Well, it's still a bit sloppy by my standard, but here's a patch for the revised version of Scene Item Laura V1.2 - Revised version.

Sloppy by my standard as I left his inner mechanics untouched. I should have broken the menus into smaller modules so other scripters could more easily write new code and patches.

Code:
#==============================================================================
# Extra ITEM for MOG_Scene_Item Revised
#     an edit of MOG_Scene_Item V1.3 by Moghunter  
#                http://www.atelier-rgss.com
#==============================================================================
#  Patch by DerVVulfman
#  
#  NOTE:  Requires the end user to rework their "Item_com" graphics to allow
#         for a 4th category, the 'Special' item type.  The format is:
#     Item_com01.png ... To have 4 items, the 1st window "Item" highlighted
#     Item_com02.png ... To have 4 items, the 2nd window "Weapon" highlighted
#     Item_com03.png ... To have 4 items, the 3rd window "Armor" highlighted
#     Item_com04.png ... To have 4 items, the 4th window "Special" highlighted
#
#   Special Items are items not visible in the normal Item bag, but are loca-
#   ted in the 4th category in the item window.  ONLY within the 4th window
#   will these items be found.
#
#   To define special items, place the IDs of these items within the
#   SpecialSelect array inside the MOG module.
#  
#   Setting the name of the new 4th slot graphic is also within the
#   MOG module
#  
#==============================================================================

module MOG
  
  # BASIC MENU CONFIGURATION
    # Item Menu Graphics Used
      ITEM_TYPE_4       = "Item_com02"      # Selection graphic (Secondary Item)

      
  # ITEM Values
    # The list of Items
      SpecialSelect     = [1,2,3]           # List if items by Item ID
  
end



#==============================================================================
# ** Window_Type
#------------------------------------------------------------------------------
#   A hidden window used to switch between the 4 item groups in the menu.
#==============================================================================

class Window_Type < Type_Sel
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------  
  def initialize
    super(0, 0, 0, 0)
    @item_max = 4
    self.index = 0
  end
end



#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------    
  alias scene_laura_extraslot_init initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------  
  def initialize(special=false)
    # Add a new value into the item window
    @special = special
    # The original call
    scene_laura_extraslot_init
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------    
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        # If special data, push only special IDs
        if @special == true
          @data.push($data_items[i]) if MOG::SpecialSelect.include?(i)
        # Otherwise, only push IDs that aren't special
        else
          @data.push($data_items[i]) unless MOG::SpecialSelect.include?(i)
        end
      end
    end
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end  
end



#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs item screen processing.
#==============================================================================

class Scene_Item
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------  
  def main
    unless MOG::ITEM_FX == 2
      @back = Plane.new
      @back.bitmap = RPG::Cache.picture(MOG::ITEM_BACKGROUND)
      @back.z = 100
    else
      @spriteset = Spriteset_Map.new
    end
    @item_lay = Sprite.new
    @item_lay.bitmap = RPG::Cache.picture(MOG::ITEM_LAYOUT)
    @item_lay.z = 100
    @item_com = Sprite.new
    @item_com.bitmap = RPG::Cache.picture(MOG::ITEM_TYPE_1)
    @item_com.z = 100
    @type = Window_Type.new
    @type.opacity  = 0
    @type.visible = false    
    @help_window = Window_Help.new
    @help_window.y = 405
    @item_window = Window_Item.new
    @item_window.help_window = @help_window
    @item_window.visible = true
    @item_window.active = true
    @weapon_window = Window_Weapon.new
    @weapon_window.help_window = @help_window
    @weapon_window.visible = false
    @weapon_window.active = true
    @armor_window = Window_Armor.new
    @armor_window.help_window = @help_window
    @armor_window.visible = false
    @armor_window.active = true    
    @item2_window = Window_Item.new(true)
    @item2_window.help_window = @help_window
    @item2_window.visible = false
    @item2_window.active = true    
    @target_window = Window_Target_Item.new
    @target_window.x = -300
    @target_window.active = false
    @help_window.opacity = 0
    @help_window.x = -200
    @help_window.contents_opacity = 0    
    @item_window.opacity = 0
    @item2_window.opacity = 0
    @weapon_window.opacity = 0
    @armor_window.opacity = 0
    @target_window.opacity = 0    
    @weapon_window.x = 640
    @armor_window.x = 640
    @item2_window.x = 640
    @item_window.x = 640  
    @weapon_window.contents_opacity = 0
    @armor_window.contents_opacity = 0
    @item2_window.contents_opacity = 0  
    @item_window.contents_opacity = 0  
    unless MOG::ITEM_FX == 2
      Graphics.transition(MOG::ITEM_TRAN_TIME, "Graphics/Transitions/" +
        MOG::ITEM_TRAN_TYPE)
    else
      Graphics.transition
    end
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    for i in 0..30
      @weapon_window.x += 20
      @armor_window.x += 20
      @item2_window.x += 20  
      @item_window.x += 20  
      @weapon_window.contents_opacity -= 15
      @armor_window.contents_opacity -= 15
      @item2_window.contents_opacity -= 15    
      @item_window.contents_opacity -= 15    
      @item_com.opacity -= 15
      @item_lay.opacity -= 15
      @help_window.contents_opacity -= 15
      @item_lay.zoom_x += 0.2
      @item_com.zoom_y += 0.2
      @target_window.x -= 15
      @back.ox += 1 if MOG::ITEM_FX == 0
      Graphics.update  
    end  
    Graphics.freeze
    @help_window.dispose
    @item_window.dispose
    @item2_window.dispose
    @weapon_window.dispose
    @armor_window.dispose
    @target_window.dispose
    @item_lay.dispose
    @back.dispose       if MOG::ITEM_FX == 0
    @back.dispose       if MOG::ITEM_FX == 1
    @spriteset.dispose  if MOG::ITEM_FX == 2
    @item_com.dispose
    @type.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------  
  def update
    if @target_window.active == true
       @target_window.visible = true
      if @target_window.x < 0
         @target_window.x += 20
      elsif @target_window.x >= 0
         @target_window.x = 0      
      end  
    else
      if @target_window.x > -300
         @target_window.x -= 20
      elsif @target_window.x >= -300
         @target_window.x = -300
         @target_window.visible = false
      end
    end    
    if @help_window.x < 0
      @help_window.x += 10
      @help_window.contents_opacity += 15    
    elsif @help_window.x >= 0
      @help_window.x = 0
      @help_window.contents_opacity = 255    
    end
    if @item_window.x > 250
      @weapon_window.x -= 20
      @armor_window.x -= 20
      @item2_window.x -= 20  
      @item_window.x -= 20  
      @weapon_window.contents_opacity += 15
      @armor_window.contents_opacity += 15
      @item2_window.contents_opacity += 15    
      @item_window.contents_opacity += 15    
    elsif  @item_window.x <= 250
      @weapon_window.x = 250
      @armor_window.x = 250
      @item2_window.x = 250  
      @item_window.x = 250  
      @weapon_window.contents_opacity = 250
      @armor_window.contents_opacity = 250
      @item2_window.contents_opacity = 250    
      @item_window.contents_opacity = 250    
    end
    if @target_window.active == false
      if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) or
         Input.press?(Input::RIGHT) or  Input.press?(Input::LEFT)
        @weapon_window.x = 640
        @armor_window.x = 640
        @item2_window.x = 640      
        @item_window.x = 640      
        @weapon_window.contents_opacity = 0
        @armor_window.contents_opacity = 0
        @item2_window.contents_opacity = 0      
        @item_window.contents_opacity = 0      
      end
      if Input.trigger?(Input.dir4) or Input.trigger?(Input.dir4) or
         Input.trigger?(Input::L) or Input.trigger?(Input::R)      
        @help_window.x = -200
        @help_window.contents_opacity = 0
      end  
    end
    @back.ox += 1 if MOG::ITEM_FX == 0
    @help_window.update
    @item_window.update
    @item2_window.update
    @weapon_window.update
    @armor_window.update
    @target_window.update
    @type.update
    case @type.index
    when 0
      @item_com.bitmap = RPG::Cache.picture(MOG::ITEM_TYPE_1)
      if @target_window.active == true
        update_target
        @item_window.active = false  
        @type.active = false
        return
      else  
        @item_window.active = true
        @type.active = true
      end    
      @item2_window.active    = false
      @weapon_window.active   = false
      @armor_window.active    = false
      @item_window.visible    = true
      @item2_window.visible   = false
      @weapon_window.visible  = false
      @armor_window.visible   = false    
    when 1
      @item_com.bitmap        = RPG::Cache.picture(MOG::ITEM_TYPE_2)
      @item_window.active     = false
      @item2_window.active    = false
      @weapon_window.active   = true
      @armor_window.active    = false
      @item_window.visible    = false
      @item2_window.visible   = false
      @weapon_window.visible  = true
      @armor_window.visible   = false    
    when 2
      @item_com.bitmap        = RPG::Cache.picture(MOG::ITEM_TYPE_3)
      @item_window.active     = false
      @item2_window.active    = false
      @weapon_window.active   = false
      @armor_window.active    = true
      @item_window.visible    = false
      @item2_window.visible   = false
      @weapon_window.visible  = false
      @armor_window.visible   = true
    when 3
      @item_com.bitmap = RPG::Cache.picture(MOG::ITEM_TYPE_4)
      if @target_window.active == true
        update_target
        @item2_window.active = false  
        @type.active = false
        return
      else  
        @item2_window.active = true
        @type.active = true
      end    
      @item_window.active     = false
      @weapon_window.active   = false
      @armor_window.active    = false
      @item2_window.visible   = true
      @item_window.visible    = false
      @weapon_window.visible  = false
      @armor_window.visible   = false    
    end
    return update_item    if @item_window.active
    return update_weapon  if @weapon_window.active
    return update_armor   if @armor_window.active
    return update_item2   if @item2_window.active
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when item window is active)
  #--------------------------------------------------------------------------  
  def update_item2
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
      return
    end
    if Input.trigger?(Input::C)
      @item = @item_window.item
      unless @item.is_a?(RPG::Item)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      unless $game_party.item_can_use?(@item.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      if @item.scope >= 3
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 1 * 304
        @target_window.active = true
        @target_window.x = -350              
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      else
        if @item.common_event_id > 0
          $game_temp.common_event_id = @item.common_event_id
          $game_system.se_play(@item.menu_se)
          if @item.consumable
            $game_party.lose_item(@item.id, 1)
            @item_window.draw_item(@item_window.index)
          end
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
end

Oh... it is 'purist' in that it assumes the windows will slide into the default position as the original script. For your change, look to lines 249 to 266 which YOU can edit. Ya had it going fine yourself. Winking I'm just leaving it 'pure' so to speak.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
   I want to merge item classification and description extensions. zlsl 7 4,282 11-25-2019, 06:46 AM
Last Post: kyonides
   Handling very long Item Names Melana 4 4,503 09-24-2018, 06:37 PM
Last Post: Melana
   Need help with my menu - Current issue is item grid layout LilyFrog 41 17,510 09-24-2018, 02:03 AM
Last Post: LilyFrog
   using $scene during battles Keeroh 5 4,748 01-17-2018, 04:31 PM
Last Post: Keeroh
Sad  Equip bug (1-scene CMS) Whisper 2 3,129 01-23-2017, 09:20 AM
Last Post: Whisper
Bug Help with a Scene Equip Iqus 7 4,764 03-05-2014, 05:40 PM
Last Post: MechanicalPen
Exclamation  FF7s Hyper/Tranquilizer Item Script Petition Iqus 2 3,083 06-18-2013, 01:26 AM
Last Post: Iqus
   Cold's Bestiary and Item Book Vengan 0 2,055 05-27-2010, 08:59 AM
Last Post: Vengan
   Using animations in a scene (unrelated to battles and maps) PK8 4 5,294 11-17-2009, 10:54 AM
Last Post: PK8
   Timing problem with damage shown on the screen - Scene Battle mageone 2 4,201 10-20-2009, 06:22 PM
Last Post: mageone



Users browsing this thread: