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 }


Messages In This Thread
A fourth column in MOG Scene Item Laura V1.2 - by Noctis - 11-22-2016, 05:16 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
   Plugin or Script help with Item menu, SKill menu, and Equip menu JayRay 2 62 Yesterday, 03:09 AM
Last Post: JayRay
   I want to merge item classification and description extensions. zlsl 7 9,593 11-25-2019, 06:46 AM
Last Post: kyonides
   Handling very long Item Names Mel 4 8,236 09-24-2018, 06:37 PM
Last Post: Mel
   Need help with my menu - Current issue is item grid layout LilyFrog 41 39,315 09-24-2018, 02:03 AM
Last Post: LilyFrog
   using $scene during battles Keeroh 5 8,866 01-17-2018, 04:31 PM
Last Post: Keeroh
Sad  Equip bug (1-scene CMS) Whisper 2 5,501 01-23-2017, 09:20 AM
Last Post: Whisper
Bug Help with a Scene Equip Iqus 7 8,286 03-05-2014, 05:40 PM
Last Post: MechanicalPen
Exclamation  FF7s Hyper/Tranquilizer Item Script Petition Iqus 2 5,079 06-18-2013, 01:26 AM
Last Post: Iqus
   Cold's Bestiary and Item Book Vengan 0 3,569 05-27-2010, 08:59 AM
Last Post: Vengan
   Using animations in a scene (unrelated to battles and maps) PK8 4 9,024 11-17-2009, 10:54 AM
Last Post: PK8



Users browsing this thread: 1 Guest(s)