collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Basic Menu Plus  (Gelesen 4006 mal)

Offline Snake

  • Moderator
  • VX-Kenner
  • ***
  • Beiträge: 538
  • Blubb, der Mod den keiner kennt! XD
Basic Menu Plus
« am: Januar 26, 2008, 14:52:53 »
Description:
Zitat
This script adds some extra stuff such as the play time, to the default RPG Maker VX menu. This script will allow you to easily work on top of it, and adapt it to your game.


Spoiler for Hiden:
##################################################
# Mog Basic Menu Plus V 1.0                      #
##################################################
# By Moghunter
# http://www.atelier-rgss.com
##################################################
#Menu padrão VX com adição de alguns extras, neste
#script você poderá trabalhar em cima dele e adaptá-lo
#facilmente ao seu jogo.
#-------------------------------------------------
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# Window_Base #
###############
class Window_Base < Window  
  def draw_actor_level_menu(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 16, y, 24, WLH, actor.level, 2)
  end  
  def draw_actor_class_menu(actor, x, y)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, 85, WLH, actor.class.name)
  end    
 def exp_gauge_color1
    return text_color(30)
  end
  def exp_gauge_color2
    return text_color(31)
  end  
def draw_actor_exp_meter(actor, x, y, width = 100)  
  if actor.next_exp != 0
  exp = actor.now_exp
  else
  exp = 1
  end
    gw = width * exp / [actor.next_exp, 1].max
    gc1 = exp_gauge_color1
    gc2 = exp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, "Exp")    
    self.contents.font.color = normal_color
    xr = x + width
    self.contents.draw_text(xr - 60, y, 60, WLH,  actor.next_rest_exp_s, 2)    
end
end
#####################
# Window_MenuStatus #
#####################
class Window_MenuStatus < Window_Selectable
  def initialize(x, y)
    super(x, y, 384, 416)
    refresh
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      draw_actor_face(actor, 2, actor.index * 96 + 2, 92)
      x = 104
      y = actor.index * 96 + WLH / 2
      draw_actor_name(actor, x, y)
      draw_actor_class_menu(actor, x + 120, y)
      draw_actor_level_menu(actor, x + 200, y)
      draw_actor_state(actor, x, y + WLH * 2)
      draw_actor_hp(actor, x + 120, y + WLH * 1)
      draw_actor_mp(actor, x + 120, y + WLH * 2)
      draw_actor_exp_meter(actor, x , y + WLH * 1)
    end
  end
  def update_cursor
    if @index < 0              
      self.cursor_rect.empty
    elsif @index < @item_max  
      self.cursor_rect.set(0, @index * 96, contents.width, 96)
    elsif @index >= 100        
      self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
    else                    
      self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
    end
  end
end
############
# Game_Map #
############
class Game_Map
attr_reader   :map_id  
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
###############
# Window_Time #
###############
class Window_Mapname < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 64)
    refresh
  end  
def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Location")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, $game_map.mpname.to_s, 2)
end
end
###############
# Window_Time #
###############
class Window_Time < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 64)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Play Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
##############
# Scene_Menu #
##############
class Scene_Menu  
  def main
    start                        
    perform_transition            
    Input.update                
    loop do
      Graphics.update            
      Input.update              
      update                      
      break if $scene != self      
    end
    Graphics.update
    pre_terminate            
    Graphics.freeze              
    terminate                  
  end  
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end  
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.color.set(16, 16, 16, 128)
    update_menu_background
  end  
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.color.set(16, 16, 16, 128)
    update_menu_background
  end
  def dispose_menu_background
    @menuback_sprite.dispose
  end
  def update_menu_background
  end  
  def perform_transition
     Graphics.transition(10)
  end
  def start
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
    @playtime_window = Window_Time .new(0, 270)
    @mapname_window = Window_Mapname.new(0, 178)
    @status_window.openness = 0
    @playtime_window.openness = 0
    @mapname_window.openness = 0
    @gold_window.openness = 0
    @status_window.open
    @playtime_window.open
    @mapname_window.open
    @gold_window.open
  end
  def pre_terminate
    @status_window.close
    @playtime_window.close
    @mapname_window.close
    @gold_window.close
    @command_window.close
    begin
    @status_window.update
    @playtime_window.update
    @mapname_window.update
    @gold_window.update
    @command_window.update
    Graphics.update
    end until @status_window.openness == 0
  end  
  def terminate
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @playtime_window.dispose
    @mapname_window.dispose
  end
  def update
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    @mapname_window.update
    @playtime_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.openness = 0
    @command_window.open
    if $game_party.members.size == 0          
      @command_window.draw_item(0, false)    
      @command_window.draw_item(1, false)    
      @command_window.draw_item(2, false)      
      @command_window.draw_item(3, false)    
    end
    if $game_system.save_disabled              
      @command_window.draw_item(4, false)    
    end
  end
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      
        $scene = Scene_Item.new
      when 1,2,3  
        start_actor_selection
      when 4      
        $scene = Scene_File.new(true, false, false)
      when 5    
        $scene = Scene_End.new
      end
    end
  end
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2  
        $scene = Scene_Equip.new(@status_window.index)
      when 3  
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
$mogscript = {} if $mogscript == nil
$mogscript["basic_menu_plus"] = true

Instructions:
Zitat
Insert a new script anywhere above "Main", and copy and paste the code in the new script.


Screens:
« Letzte Änderung: Januar 26, 2008, 15:39:19 von Snake »
Zitat
Snake 23:50

ich lads schnell


Silvanus 23:50

bist ne geile sau
:)

Basic Menu Plus

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Basic Menu Plus
« Antwort #1 am: Januar 26, 2008, 15:05:30 »
Schönes neues Script (wieder mal Moghunter), danke für's Posten, Snake. Bin noch am Zweifeln, ob ich's einsetze, da mir das Location-Window etwas klein erscheint.

Würde mir eigentlich wünschen, dass man die Locations im Scene_File-Script mit abspeichern könnte. Wäre mir jetzt wichtiger.
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Basic Menu Plus

ERZENGEL

  • Gast
Basic Menu Plus
« Antwort #2 am: Januar 26, 2008, 15:14:17 »
Meinst du das im Speichermenü der aktuelle Ort angezeigt wird? Kann ich ja machen.

@Snake: Du solltest vllt die Smilies deaktivieren :)
« Letzte Änderung: Januar 26, 2008, 15:14:52 von ERZENGEL »

Basic Menu Plus

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Basic Menu Plus
« Antwort #3 am: Januar 26, 2008, 15:22:51 »
Ja, genau das meinte ich, Archy. Folglich dann natürlich auch beim Laden-Menü. Wär prima.
« Letzte Änderung: Januar 26, 2008, 15:24:26 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Basic Menu Plus

Offline Snake

  • Moderator
  • VX-Kenner
  • ***
  • Beiträge: 538
  • Blubb, der Mod den keiner kennt! XD
Basic Menu Plus
« Antwort #4 am: Januar 26, 2008, 15:39:44 »
Zitat von: ERZENGEL
Meinst du das im Speichermenü der aktuelle Ort angezeigt wird? Kann ich ja machen.

@Snake: Du solltest vllt die Smilies deaktivieren :)

Ah sry xD
/done^^
Zitat
Snake 23:50

ich lads schnell


Silvanus 23:50

bist ne geile sau
:)

Basic Menu Plus

ERZENGEL

  • Gast
Basic Menu Plus
« Antwort #5 am: Januar 26, 2008, 15:44:19 »

EDIT3:
Hier werdet ihr fündig, wenn ihr so ein Feature, wie Baur geschrieben hat, wollt.
« Letzte Änderung: Februar 01, 2008, 22:35:56 von ERZENGEL »

Re: Basic Menu Plus

vejaybejay

  • Gast
Re: Basic Menu Plus
« Antwort #6 am: August 03, 2008, 00:45:56 »
@Erzengel: Der Link ist broken -.- Würdest du ihn nochmal neu definieren?

Re: Basic Menu Plus

Offline Redeemer

  • Database-Verunstalter
  • **
  • Beiträge: 179
Re: Basic Menu Plus
« Antwort #7 am: August 04, 2008, 16:55:28 »
@Erzengel

Ähm der Link funzt leider nicht. Kannste mal nen neuen machen? please.
Danke

 


 Bild des Monats

rooftop party

Views: 3581
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal