Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Mog Styled Menus

Status
Not open for further replies.
Then you could make a request. I'm only good at certain types, so I might not be able to fill it--but there are plenty of other people that are good with Photoshop.
 
I have indeed made my own graphics for mogs menu. Though, I have modified the script a little + added some other stuff. And mine is not animated, I like to keep it simple. It is also made for Guillaume777's multi-equip scripts, here is few previews:

Scene_Menu, I haven't made bars or cursor.
http://img260.imageshack.us/img260/8224/soa2yu8.png

Equip menu with Guillaume777's Multi-Equip script
http://img515.imageshack.us/img515/9473/soa3fy4.png

Pretty nooby ones, I could do much better if I wanted, but these was designed for my game and I wanted to keep them simple. I have whole set designed, if people wants to use these ones, I can upload & share them. Or If someone makes detailed request, I might try to create something. I am pretty familiar with photoshop so that won't be problem.
 
Drizzi3;238301 said:
I have indeed made my own graphics for mogs menu. Though, I have modified the script a little + added some other stuff. And mine is not animated, I like to keep it simple. It is also made for Guillaume777's multi-equip scripts, here is few previews:

Scene_Menu, I haven't made bars or cursor.
http://img260.imageshack.us/img260/8224/soa2yu8.png

Equip menu with Guillaume777's Multi-Equip script
http://img515.imageshack.us/img515/9473/soa3fy4.png

Pretty nooby ones, I could do much better if I wanted, but these was designed for my game and I wanted to keep them simple. I have whole set designed, if people wants to use these ones, I can upload & share them. Or If someone makes detailed request, I might try to create something. I am pretty familiar with photoshop so that won't be problem.

http://www.rmxp.org/forums/showthread.php?t=23483 D:?
 
@ Drizzi3 could you share the script edit that utilizes Guillaume's multi-equip script? cause that would make my game closer to a full demo stage.
 
Ahh, to do that replace Mog - Scene Equip with this:

Code:
#_______________________________________________________________________________
# MOG Scene Equip Asuka V1.1           
#_______________________________________________________________________________
# By Moghunter          
#_______________________________________________________________________________
if true # True = Enable / False = Disable (Script)
module MOG
#Transition Time.  
MSEQPT= 20
#Transition Type.
MSEQPTT= "004-Blind04"
# Set Maximum (STR,DEX,AGL,INT)
MST_ST = 999
# Set Maximum (ATK,PDEF,MDEF)
MST_STE = 999
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_asuka"] = true
###############
# Window_Base #
###############
class Window_Base < Window
def nada2(actor)
face = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
end    
def draw_heroface2(actor,x,y)
face = RPG::Cache.picture(actor.name + "_fc2") rescue nada2(actor)
cw = face.width 
ch = face.height 
src_rect = Rect.new(0, 0, cw, ch)
if face == RPG::Cache.battler(actor.battler_name, actor.battler_hue)
self.contents.blt(x + 40 , y - ch - 240, face, src_rect)    
else  
self.contents.blt(x , y - ch, face, src_rect)    
end
end     
def drw_eqpup(x,y,type)
case type
when 0
est = RPG::Cache.icon("ST_EQU")
when 1
est = RPG::Cache.icon("ST_UP")
when 2
est = RPG::Cache.icon("ST_DOWN")  
end  
cw = est.width 
ch = est.height 
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, est, src_rect)    
end   
def drw_equist(x,y)
equist = RPG::Cache.picture("Equip_St")
cw = equist.width 
ch = equist.height 
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, equist, src_rect)    
end  
def draw_actor_parameter2(actor, x, y, type)
back = RPG::Cache.picture("STBAR_Back")    
cw = back.width  
ch = back.height 
src_rect = Rect.new(0, 0, cw, ch)    
self.contents.blt(x + 50 , y - ch + 20, back, src_rect)  
meter = RPG::Cache.picture("STBAR.png")    
case type
when 0
parameter_value = actor.atk
cw = meter.width  * actor.atk / MOG::MST_STE
when 1
parameter_value = actor.pdef
cw = meter.width  * actor.pdef / MOG::MST_STE
when 2
parameter_value = actor.mdef
cw = meter.width  * actor.mdef / MOG::MST_STE
when 3
parameter_value = actor.str
cw = meter.width  * actor.str / MOG::MST_ST
when 4
parameter_value = actor.dex
cw = meter.width  * actor.dex / MOG::MST_ST
when 5
parameter_value = actor.agi
cw = meter.width  * actor.agi / MOG::MST_ST
when 6
parameter_value = actor.int
cw = meter.width  * actor.int / MOG::MST_ST
end
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y - 2, 36, 32, parameter_value.to_s, 2)
ch = meter.height 
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 50 , y - ch + 20, meter, src_rect) 
end
def nada
face = RPG::Cache.picture("")
end  
def draw_heroface3(actor,x,y)
face = RPG::Cache.picture(actor.name + "_fc3") 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  
end
####################
# Window_EquipLeft #
####################
class Window_EquipLeft < Window_Base
  def initialize(actor)
    super(0, 64, 272, 446)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    self.contents.font.name = "Georgia"    
    @actor = actor
    refresh
  end
  def refresh
    self.contents.clear
    draw_heroface2(@actor, 20, 460)      
    drw_equist(0,390)    
    draw_actor_name(@actor, 4, 0)
    draw_actor_level(@actor, 4, 32)
    draw_actor_parameter2(@actor, 10, 164 , 0)
    draw_actor_parameter2(@actor, 10, 196 , 1)
    draw_actor_parameter2(@actor, 10, 228 , 2)
    draw_actor_parameter2(@actor, 10, 260 , 3)
    draw_actor_parameter2(@actor, 10, 292 , 4)
    draw_actor_parameter2(@actor, 10, 324 , 5)
    draw_actor_parameter2(@actor, 10, 356 , 6)        
    if @new_atk != nil
      self.contents.font.color = system_color
      if @new_atk < @actor.atk
      drw_eqpup(170,190,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_atk > @actor.atk
      drw_eqpup(170,190,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,190,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end      
      self.contents.draw_text(190, 162, 36, 32, @new_atk.to_s, 2)
    end
    if @new_pdef != nil
      if @new_pdef < @actor.pdef
      drw_eqpup(170,226,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_pdef > @actor.pdef
      drw_eqpup(170,226,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,226,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end  
      self.contents.draw_text(190, 194, 36, 32, @new_pdef.to_s, 2)
    end
    if @new_mdef != nil
      if @new_mdef < @actor.mdef
      drw_eqpup(170,258,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_mdef > @actor.mdef
      drw_eqpup(170,258,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,258,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end
      self.contents.draw_text(190, 226, 36, 32, @new_mdef.to_s, 2)
    end
    if @new_str  != nil
      if @new_str < @actor.str
      drw_eqpup(170,290,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_str > @actor.str
      drw_eqpup(170,290,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,290,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end
      self.contents.draw_text(190, 258, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex  != nil
      if @new_dex < @actor.dex
      drw_eqpup(170,322,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_dex > @actor.dex
      drw_eqpup(170,322,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,322,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end
      self.contents.draw_text(190, 290, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi  != nil
      if @new_agi < @actor.agi
      drw_eqpup(170,354,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_agi > @actor.agi
      drw_eqpup(170,354,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,354,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end
      self.contents.draw_text(190, 322, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int  != nil
      if @new_int < @actor.int
      drw_eqpup(170,386,2)  
      self.contents.font.color = Color.new(255,50,50,255)      
      elsif @new_int > @actor.int
      drw_eqpup(170,386,1)  
      self.contents.font.color = Color.new(50,250,150,255)
      else
      drw_eqpup(170,386,0)        
      self.contents.font.color = Color.new(255,255,255,255)      
      end
      self.contents.draw_text(190, 354, 36, 32, @new_int.to_s, 2)
    end
  end
  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,
    new_agi, new_int)
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or
      @new_str != new_str or @new_dex != new_dex or @new_agl != new_agi or
      @new_int != new_int      
      @new_atk = new_atk
      @new_pdef = new_pdef
      @new_mdef = new_mdef
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end
end
#####################
# Window_EquipRight #
#####################
class Window_EquipRight < Window_Selectable
  def initialize(actor)
    super(272, 64, 368, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    self.contents.font.name = "Georgia"        
    @actor = actor
    refresh
    self.index = 0
  end
  def item
    return @data[self.index]
  end
  def refresh
       self.contents.clear
    @data = []
    @data.push($data_weapons[@actor.weapon_id])
    @data.push($data_armors[@actor.armor1_id])
    @data.push($data_armors[@actor.armor2_id])
    @data.push($data_armors[@actor.armor3_id])
    @data.push($data_armors[@actor.armor4_id])
    @item_max = @data.size
    draw_item_name(@data[0], 92, 32 * 0)
    draw_item_name(@data[1], 92, 32 * 1)
    draw_item_name(@data[2], 92, 32 * 2)
    draw_item_name(@data[3], 92, 32 * 3)
    draw_item_name(@data[4], 92, 32 * 4)

  end
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end
####################
# Window_EquipItem #
####################
class Window_EquipItem < Window_Selectable
  def initialize(actor, equip_type)
    super(272, 256, 368, 224)
    self.opacity = 0
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
  def item
    return @data[self.index]
  end
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    if @equip_type == 0
      weapon_set = $data_classes[@actor.class_id].weapon_set
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
          @data.push($data_weapons[i])
        end
      end
    end
    if @equip_type != 0
      armor_set = $data_classes[@actor.class_id].armor_set
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0 and armor_set.include?(i)
          if $data_armors[i].kind == @equip_type-1
            @data.push($data_armors[i])
          end
        end
      end
    end
    @data.push(nil)
    @item_max = @data.size
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max-1
      draw_item(i)
    end
  end
  def draw_item(index)
    self.contents.font.name = "Georgia"        
    item = @data[index]
    x = 4 + index % 1 * (288 + 32)
    y = index / 1 * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    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, 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
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end
###############
# Scene_Equip #
###############
class Scene_Equip
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
    @equip_index = equip_index
  end
  def main
    @mnback = Plane.new
    @mnback.bitmap = RPG::Cache.picture("MN_BK")
    @mnback.z = 1
    @mnlay = Sprite.new
    @mnlay.bitmap = RPG::Cache.picture("Equip_Lay")
    @mnlay.z = 2
    @actor = $game_party.actors[@actor_index]
    @help_window = Window_Help.new
    @help_window.opacity = 0
    @help_window.x = -300
    @help_window.contents_opacity = 0
    @left_window = Window_EquipLeft.new(@actor)
    @left_window.x = -300
    @left_window.contents_opacity = 0
    @right_window = Window_EquipRight.new(@actor)
    @item_window1 = Window_EquipItem.new(@actor, 0)
    @item_window2 = Window_EquipItem.new(@actor, 1)
    @item_window3 = Window_EquipItem.new(@actor, 2)
    @item_window4 = Window_EquipItem.new(@actor, 3)
    @item_window5 = Window_EquipItem.new(@actor, 4)
    @right_window.help_window = @help_window
    @item_window1.help_window = @help_window
    @item_window2.help_window = @help_window
    @item_window3.help_window = @help_window
    @item_window4.help_window = @help_window
    @item_window5.help_window = @help_window
    @right_window.index = @equip_index
    refresh
    Graphics.transition(MOG::MSEQPT, "Graphics/Transitions/" + MOG::MSEQPTT)
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    for i in 0..20
    @left_window.x -= 15
    @left_window.contents_opacity -= 10
    Graphics.update  
    end  
    Graphics.freeze
    @help_window.dispose
    @left_window.dispose
    @right_window.dispose
    @item_window1.dispose
    @item_window2.dispose
    @item_window3.dispose
    @item_window4.dispose
    @item_window5.dispose
    @mnback.dispose
    @mnlay.dispose
  end
  def refresh
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    item1 = @right_window.item
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    if @right_window.active
      @left_window.set_new_parameters(nil, nil, nil,nil, nil, nil,nil)
    end
    if @item_window.active
      item2 = @item_window.item
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int     
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
      new_dex,new_agi,new_int)      
    end
  end
  def update
    if @left_window.x < 0
    @left_window.x += 15
    @left_window.contents_opacity += 10
    elsif @left_window.x >= 0
    @left_window.x = 0
    @left_window.contents_opacity = 255
    end
    if @help_window.x < 0 
    @help_window.x  += 20
    @help_window.contents_opacity += 10
    elsif @help_window.x >= 0
    @help_window.x = 0
    @help_window.contents_opacity = 255
  end    
    @mnback.ox += 1    
    @left_window.update
    @right_window.update
    @item_window.update
    if Input.trigger?(Input::B) or Input.trigger?(Input::C) or
    Input.trigger?(Input.dir4) or Input.trigger?(Input::L) or
    Input.trigger?(Input::R) or Input.press?(Input.dir4)
    @help_window.x = -300
    @help_window.contents_opacity = 0
    refresh
    end    
    if @right_window.active
      update_right
      return
    end
    if @item_window.active
      update_item
      return
    end
  end
  def update_right
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    if Input.trigger?(Input::C)
      if @actor.equip_fix?(@right_window.index)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      @right_window.active = false
      @item_window.active = true
      @item_window.index = 0
      refresh      
      return
    end
    if Input.trigger?(Input::R)
      $game_system.se_play($data_system.cursor_se)
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
    if Input.trigger?(Input::L)
      $game_system.se_play($data_system.cursor_se)
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
  end
  def update_item
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      refresh
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.equip_se)
      item = @item_window.item
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      @right_window.refresh
      @item_window.refresh
      refresh      
      return
    end
  end
end
end

You'll have to edit the menu graphic a bit to get it all looking nice.
 
hmm... it doesn't work for me, samamanjaro...
@ drizzi: how can i change it, that the names are below, so the arrow doesn't go
-
--
---
--
-
only
-
-
-
-
 
F-chan:

Go to line 340, you should find something like this:

Code:
case @command_window.index
when 0  
@mnsel.x = 0
@mnsel.y = 110
when 1
@mnsel.x = 25
@mnsel.y = 155
when 2
@mnsel.x = 40
@mnsel.y = 197
when 3
@mnsel.x = 45
@mnsel.y = 242
when 4
@mnsel.x = 25
@mnsel.y = 285
when 5
@mnsel.x = 0
@mnsel.y = 325
end

Just edit the "x-positions" to 0, like this:

Code:
case @command_window.index
when 0  
@mnsel.x = 0
@mnsel.y = 110
when 1
@mnsel.x = 0
@mnsel.y = 155
when 2
@mnsel.x = 0
@mnsel.y = 197
when 3
@mnsel.x = 0
@mnsel.y = 242
when 4
@mnsel.x = 0
@mnsel.y = 285
when 5
@mnsel.x = 0
@mnsel.y = 325
end

Pretty simple :)

And Chaos_Prime, there is not really need to edit Mog's script to make it work with Guillaume777's script. You just need to make the graphics + make sure Guillaume's scripts settings are ok and equip script should be placed below mog's script. If samamanjaros script fixes something, I guess it's fine too.

Gustave: I don't really know what should the templates look like. I don't want to give too much space for my imagination, I have pretty special taste. If you, or someone else is able to give more detailed request I can do that.

And about my skills with photoshop, I have few years experience, mostly doing signatures and stuff. For newest example, look below to my signature.
 
Gustave: I don't really know what should the templates look like. I don't want to give too much space for my imagination, I have pretty special taste. If you, or someone else is able to give more detailed request I can do that.

Well hell thats what I want. The more imagination the better an artist can flourish? I guess if your still not up to it, I can write some specifics.
 
Okay, so I got the select cursors/playtime, money, and steps, but I can't figure out how to switch around parts of the Window_MenuStatus2. It's all clumped together in a terrible fashion that is nothing like what I need. Is there any chance I'd have to edit one of the default scripts?
 
Awesome scripts man! Great graphics...
I just have one Question. Is there any way to change text Font options to 'Square 720' MOG_HUD script? Just wondering because my game currently uses that Font. Just tell me the line in the script that changes the text Font for the Numbers...

EDIT : Nevermind i found the line. It's line 101
Code:
self.contents.font.name = "Square721 BT"
thanks anyway...
 

fribx

Member

You are my hero......
sry for being a noob but i can use these in my game as long as i give credit to Moghunter? anyways these screnes are very professional and i think you did a great job on them
 
I really want to stop the stretching effect on the main menu cursor but I'm having trouble figuring out how to do that. I'm pretty code-illiterate so that is not helping the problem
 
Does anyone know of a tutorial that would show me step by step how to make good menu graphics? I want to try to make graphics for this menu, but I have no idea where to start...I dunno what fonts I would use, how to do backgrounds and stuff...I use Gimp, so yeah.
 
Hey, I can't figure out how to disable the treasure gaining pop up thing. I put in a switch ID, and turned on that switch, but it still comes up...anyone know how to temporarily disable it?
 
sillypieman;240226 said:
Hey, I can't figure out how to disable the treasure gaining pop up thing. I put in a switch ID, and turned on that switch, but it still comes up...anyone know how to temporarily disable it?

You turn the switch off then when you want it again turn it back on.
 
Ah okay. I guess that messed me up cuz with the Map Name you turn ON the switch to disable it...k I'll try, thx so much.

Edit: Hm...when I turn the switch off, it doesn't play the SE...but the treasure thing still pops up....
 
Status
Not open for further replies.

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top