| 赞 | 47  | 
 
| VIP | 2420 | 
 
| 好人卡 | 100 | 
 
| 积分 | 58 | 
 
| 经验 | 75384 | 
 
| 最后登录 | 2025-11-4 | 
 
| 在线时间 | 3698 小时 | 
 
 
 
 
 
Lv4.逐梦者 (暗夜天使) 名侦探小柯 
	- 梦石
 - 2 
 
        - 星屑
 - 3782 
 
        - 在线时间
 - 3698 小时
 
        - 注册时间
 - 2006-9-6
 
        - 帖子
 - 37422
 
 
      
 
 | 
	
以下引用xatm092于2008-2-7 17:59:29的发言: 
 
################################################## 
# 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 
 
这个脚本不错,你试试  
 
 
[本贴由作者于 2008-2-7 18:00:57 最后编辑]  
简直就是复员XP…… |   
 
 
 
 |