Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Ally

CMS Menù per un solo PG

Recommended Posts

Nome Script: Menù per un solo PG

Versione: 1.2

Autore/i: LilBrudder917's

 

Informazioni:

Questo script è adatto per chi usa un solo PG nel suo game.

Tutte le varie finestre possono essere attivate o disattivate ^^ (potete vedere la differenza dai due screen,una che ha attiva la locazione,e l'altro no)

Inoltre,potete inserire un vostro sfondo in basso a destra con un'immagine di 150x60.

 

Istruzioni:

Inserite lo script sopra Main.

 

Script:

#==============================================================================
# Project CMS by lilbrudder917
# Version 1.22
#------------------------------------------------------------------------------
# Overrides Scene_Menu and Window_MenuStatus. Rewrites the "Draw Level" parts of
# Window_Base to change settings. Window_PlayTime has been changed in Width.
# Rewrites Window_Steps.
#==============================================================================

#==============================================================================
# CONFIGURATION
#==============================================================================

ItemName    = "Inventory"   # Default is Item
SkillName   = "Cast Spell"  # Default is Skill
EquipName   = "Wear"        # Default is Equip
StatusName  = "Status"      # Default is Status
SaveName    = "Save Data"   # Default is Save
EndName     = "Quit Game"   # Default is End Game
CommandW    = 150           # Width of the Command Window
Custom_Map  = false         # If true, you can have a picture as a background.
Map_Picture = "mappic" # If Custom_Map = true, this will be the background.
Facesets    = true          # If true and the face file is missing, the actor's
                                                   #sprite will be used instead
FaceIMG     = "Face"        # Filename for the face image.
FFILETYPE   = ".png"        # Face File Type
CornerLogo  = true          # In the bottom right corner, want a 148x61 icon?
LogoIcon    = "logoicon"    # Name of icon
LogoFType   = ".png"        # Icon File Type


#=============================================================================
# Scene_Menu Window Add-ons
#=============================================================================

$MapBG    = true         # If true, the map will be your background
$UseNotes = true         # To use Window_Notes, have this true.
$UsePTime = true         # To use Window_PlayTime, have this true.
$UseRTime = true         # To use Window_RealTime, have this true.
RTHVar = 2               # Variable used for storing hours
RTMVar = 3               # Variable used for storing minutes
RTAPVar= 4               # Variable used for storing AM/PM
RTSVar = 5               # Variable used for storing seconds
$TwelClock = true        # 12-Hour Clock if true, false = 24-Hour Clock
$UseVar   = true         # To use Window_Variable, have this true.
$UseSteps = true         # To use Window_Steps, have this true.
$UseGold  = true         # To use Window_Gold, have this true.
$UseLoca  = true         # To use Window_Location, have this true.

###############################################################################
#                           Coordinate Controls                               #
#-----------------------------------------------------------------------------#
#    Unless you know what you are doing, I don't recommend touching these.    #
#           These are the display settings of Window_MenuStatus.              #
###############################################################################


ShowName  = true       # Show Actor's Name?
NameX     = 135        # Actor_Name X Position
NameY     = 0          # Actor_Name Y Position
ShowClass = true       # Show Actor's Class?
ClassX    = 128        # Actor_Class X Position
ClassY    = 30         # Actor_Class Y Position
ShowLevel = true       # Show Actor's Level?
LevelX    = 0          # Actor_Level X Position
LevelY    = 139        # Actor_Level Y Position
LevelT    = "Level"    # Custom Title for Level?
ShowState = true       # Show Actor_State?
StateX    = 123        # Actor_State X Position
StateY    = 50         # Actor_State Y Position
ShowHP    = true       # Show HP/MaxHP String?
UseBARS   = nil        # Coming Soon
HPX       = 0          # Hitpoints String X Position
HPY       = 100        # Hitpoints String Y Position
ShowSP    = true       # Show SP/MaxSP String?
SpecX     = 0          # Specpoints String X Position
SpecY     = 125        # Specpoints String Y Position
ShowEXP   = true       # Show Experience String?
ExperX    = 0          # Experience String X Position
ExperY    = 185        # Experience String Y Position
CommandX  = 488        # Window_Command X Position
WINNOTES_X= 2          # Window_Notes X Position
WINNOTES_Y= 242        # Window_Notes Y Position
RealTimeX = 488        # Window_RealTime X Position
RealTimeY = 320        # Window_RealTime Y Position
PlayTimeX = 488        # Window_PlayTime X Position
PlayTimeY = 224        # Window_PlayTime Y Position
VariableX = 243        # Window_Variable X Position
VariableY = 66         # Window_Variable Y Position
WStepX    = 243        # Window_Steps X Position
WStepY    = 163        # Window_Steps Y Position
WGoldX    = 243        # Window_Gold X Position
WGoldY    = 2          # Window_Gold Y Position
PLogoX    = 490        # Game_Logo X Position
PLogoY    = 418        # Game_Logo Y Position
WMStatusX = 2          # Window_MenuStatus X Position
WMStatusY = 2          # Window_MenuStatus Y Position
LOCATION_X= 2
LOCATION_Y= 430
VariTitle = "Bank"     # Text in Window_Variable
VariShoNum= 1          # Variable used in Window_Variable
GoldName  = "Gold"     # Currency Name
StepName  = "Steps"    # Text in Window_Steps
PlTiName  = "Play Time"# Text in Window_PlayTime
NoteVName = "Notes"    # Text in Window_Notes
CurTiName = "Time"     # Text in Window_RealTime
LocaName  = "Location:"# Text in Window_Location


if $MapBG && Custom_Map == true
  print "Both $MapBG and Custom_Map cannot be on at the same time! Turning off Custom_Map."
  Custom_Map = false
end


#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays party member status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 240, 240)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 0
      y = 0
      actor = $game_party.actors[i]
      if Facesets == true #Facesets True?
      if FileTest.exist?("Graphics/Pictures/" + FaceIMG + FFILETYPE) #File Exist
      @face_file = FaceIMG + FFILETYPE
      self.contents.blt(x, y, RPG::Cache.picture(@face_file), Rect.new(x, y, 112, 112))
      else #File Not Exist
      draw_actor_graphic(actor, 24, 56)
      end #End File Check
      else #Facesets Else
      draw_actor_graphic(actor, 24, 56)
    end #Faceset End
     if ShowName == true
      draw_actor_name(actor, NameX, NameY)
      end
      if ShowLevel == true
      draw_actor_level(actor, 0, 0)
      end
      if ShowState == true
      draw_actor_state(actor, StateX, StateY)
      end
      draw_actor_exp(actor, ExperX, ExperY)
      if ShowClass == true
      draw_actor_class(actor, ClassX, ClassY)
      end
      if ShowHP == true
      draw_actor_hp(actor, HPX, HPY)
      end
      if ShowSP == true
      draw_actor_sp(actor, SpecX, SpecY)
      end
    end
  end

  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
  end
#==============================================================================
# End Window_MenuStatus
#==============================================================================

#==============================================================================
# Window Base Level Edit
#==============================================================================
class Window_Base
  def draw_actor_level(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(LevelX, 160, 32, 32, LevelT, 2)
    self.contents.font.color = normal_color
    self.contents.draw_text(LevelX + 32, 160, 24, 32, actor.level.to_s, 2)
  end
end
#==============================================================================
# End Window_Base
#==============================================================================





class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 245, 78)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, -5, 120, 32, StepName)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 16, 200, 32, $game_party.steps.to_s, 2)
  end
end





#==============================================================================
# ** Window_Gold
#------------------------------------------------------------------------------
#  This window displays amount of gold.
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 245, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size(GoldName).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 180-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(184-cx, 0, cx, 32, GoldName, 2)
  end
end


#==============================================================================
# ** Window_PlayTime
#------------------------------------------------------------------------------
#  This window displays play time on the menu screen.
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 150, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 100, 32, PlTiName)
    @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, 100, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end



#=============================================================================
# End Window_Steps
#==============================================================================


#==============================================================================
# ** Window_Notes by lilbrudder917
#------------------------------------------------------------------------------
#  This window displays custom-made notes made for the menu screen, but
#  can be called anywhere. Requires Project CMS to work. I think.
#==============================================================================

$MESSAGE1_L1 = "Welcome to the Menu! This Window is called" # First line for the first message
$MESSAGE1_L2 = "the Notes Window! Text automatically aligns" # Second line for the first message
$MESSAGE1_L3 = "to the right side of the Window, and the" # Third line for the first message
$MESSAGE1_L4 = "Window stores up to 5 lines per message!"
$MESSAGE1_L5 = " "
$MESSAGE2_L1 = "Since you talked to the Shady Noter,"
$MESSAGE2_L2 = "you have unlocked this new message to be"
$MESSAGE2_L3 = "placed in your notes!"
$MESSAGE2_L4 = " "
$MESSAGE2_L5 = "Butterscotch."
$MESSAGE3_L1 = "If you want, you can define these to say"
$MESSAGE3_L2 = "what you want them to and then Script Call"
$MESSAGE3_L3 = "'$DEFMESSAGE = (MessageNumber)' without "
$MESSAGE3_L4 = "quotations or parentheses."
$MESSAGE3_L5 = " "
$MESSAGE4_L1 = "Oh, if you want a blank line, just put a"
$MESSAGE4_L2 = "space where the message would go."
$MESSAGE4_L3 = " "
$MESSAGE4_L4 = " "
$MESSAGE4_L5 = "See?"
$DEFMESSAGE = 1 # Can be changed in game.



class Window_Notes < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(240, 20, 485, 190)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, NoteVName)

    if $DEFMESSAGE == 1
      text_L1 = $MESSAGE1_L1
      text_L2 = $MESSAGE1_L2
      text_L3 = $MESSAGE1_L3
      text_L4 = $MESSAGE1_L4
      text_L5 = $MESSAGE1_L5
    elsif $DEFMESSAGE == 2
      text_L1 = $MESSAGE2_L1
      text_L2 = $MESSAGE2_L2
      text_L3 = $MESSAGE2_L3
      text_L4 = $MESSAGE2_L4
      text_L5 = $MESSAGE2_L5
    elsif $DEFMESSAGE == 3
      text_L1 = $MESSAGE3_L1
      text_L2 = $MESSAGE3_L2
      text_L3 = $MESSAGE3_L3
      text_L4 = $MESSAGE3_L4
      text_L5 = $MESSAGE3_L5
    elsif $DEFMESSAGE == 4
      text_L1 = $MESSAGE4_L1
      text_L2 = $MESSAGE4_L2
      text_L3 = $MESSAGE4_L3
      text_L4 = $MESSAGE4_L4
      text_L5 = $MESSAGE4_L5
    else
      text_L1 = " "
      text_L2 = " "
      text_L3 = "You have nothing stored in your notes."
      text_L4 = " "
      text_L5 = " "
      end
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 350, 32, text_L1, 2)
    self.contents.draw_text(4, 64, 350, 32, text_L2, 2)
    self.contents.draw_text(4, 96, 350, 32, text_L3, 2)
    self.contents.draw_text(4, 128, 350, 32, text_L4, 2)
    self.contents.draw_text(4, 160, 350, 32, text_L5, 2)
  end


  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
      refresh
    end
  end



#==============================================================================
# ** Window_Location by lilbrudder917
#------------------------------------------------------------------------------
#  This window displays the map's name.
#==============================================================================

class Window_Location < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 485, 48)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end

  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, -10, 120, 32, LocaName)
    self.contents.font.color = normal_color
    cx = contents.text_size(LocaName).width

    self.contents.draw_text(cx+30, -10, 120, 32, $game_map.name)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
      refresh
    end
end


  #-------------------------------------------------------------------------
  # * Define Map Title
  #-------------------------------------------------------------------------
    class Scene_Title
      alias locationname main
      def main
        $map_infos = load_data('Data/MapInfos.rxdata')
        $map_infos.keys.each {|key| $map_infos[key] = $map_infos[key].name}
      locationname
    end
  end

    class Game_Map
      def name
        return $map_infos[@map_id]
      end
    end


#==============================================================================
# ** Window_Variable by lilbrudder917
#------------------------------------------------------------------------------
#  This window displays a variable made for the menu screen, but can be called
#  anywhere. Requires Project CMS to work. I think.
#==============================================================================

class Window_Variable < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 245, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, VariTitle)
    text = "#{$game_variables[VariShoNum]}"
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
      refresh
    end
end



#==============================================================================
# ** Window_RealTime by lilbrudder917
#------------------------------------------------------------------------------
#  This window displays the time stored on your computer's internal clock,
#  made for the menu screen, but can be called anywhere. Requires Project CMS
#  to work. I think.
#==============================================================================


class Window_RealTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @time_stamp = Time.new
    if $TwelClock == true
    $game_variables[RTHVar] = @time_stamp.strftime("%I") # Hour, 12-Hour Format
    $game_variables[RTMVar] = @time_stamp.strftime("%M") # Minutes
    $game_variables[RTAPVar] = @time_stamp.strftime("%p")# AM/PM
    $game_variables[RTSVar] = @time_stamp.strftime("%S") # Seconds
    else
    $game_variables[RTHVar] = @time_stamp.strftime("%H") # Hour, 24-Hour Format
    $game_variables[RTMVar] = @time_stamp.strftime("%M") # Minutes
    $game_variables[RTSVar] = @time_stamp.strftime("%S") # Seconds
    end
    super(0, 0, 150, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 100, 32, CurTiName)
    if $TwelClock == true
    text = "#{$game_variables[RTHVar]}: #{$game_variables[RTMVar]}: #{$game_variables[RTSVar]} #{$game_variables[RTAPVar]}"
   else
    text = "#{$game_variables[RTHVar]}: #{$game_variables[RTMVar]}: #{$game_variables[RTSVar]}"
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 100, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
      refresh
    end
end



class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end

  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
  #--------------------------------------------------------------------------
  # * Menu Background
  #--------------------------------------------------------------------------
    if $MapBG == true
    @map = Spriteset_Map.new
    end
    if Custom_Map == true
      @sprite = Sprite.new
      @sprite.bitmap = RPG::Cache.picture(Map_Picture)
    end

    # Make command window
    s1 = ItemName
    s2 = SkillName
    s3 = EquipName
    s4 = StatusName
    s5 = SaveName
    s6 = EndName
    @command_window = Window_Command.new(CommandW, [s1, s2, s3, s4, s5, s6])
    @command_window.x = CommandX
    @command_window.index = 0
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    if $UseNotes == true
     @mnotes_window   = Window_Notes.new
     @mnotes_window.x = WINNOTES_X
     @mnotes_window.y = WINNOTES_Y
    end
    if $UseLoca == true
    @location_window = Window_Location.new
    @location_window.x = LOCATION_X
    @location_window.y = LOCATION_Y
    end
    # Make play time window
    if $UsePTime == true
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = PlayTimeX
    @playtime_window.y = PlayTimeY
    end
    if $UseRTime  == true
    @realtime_window = Window_RealTime.new
    @realtime_window.x = RealTimeX
    @realtime_window.y = RealTimeY
    end
    if $UseVar  == true
    @vartime_window = Window_Variable.new
    @vartime_window.x = VariableX
    @vartime_window.y = VariableY
    end
    #Make steps window
    if $UseSteps ==true
    @steps_window = Window_Steps.new
    @steps_window.x = WStepX
    @steps_window.y = WStepY
    end
    # Make gold window
    if $UseGold == true
    @gold_window = Window_Gold.new
    @gold_window.x = WGoldX
    @gold_window.y = WGoldY
    end
    if CornerLogo == true

    @image = Sprite.new
    @image.bitmap = RPG::Cache.picture(LogoIcon)
    @image.x = PLogoX
    @image.y = PLogoY

    end
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = WMStatusX
    @status_window.y = WMStatusY
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    if $MapBG == true
    @map.dispose
    end
    if $UseLoca == true
    @location_window.dispose
    end
    if $UseNotes == true
    @mnotes_window.dispose
    end
    if $UsePTime == true
    @playtime_window.dispose
    end
    if $UseRTime == true
    @realtime_window.dispose
    end
    if $UseVar == true
    @vartime_window.dispose
    end
    if $UseSteps ==true
    @steps_window.dispose
    end
    if $UseGold == true
    @gold_window.dispose
    end
    if CornerLogo == true
      @image.dispose
    end    
    @status_window.dispose

  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    if $UseNotes == true
    @mnotes_window.update
    end
    if $UseLoca == true
    @location_window.update
    end
    if $UsePTime == true
    @playtime_window.update
    end
    if $UseRTime == true
    @realtime_window.update
    end
    if $UseVar == true
    @vartime_window.update
    end
    if $UseSteps ==true
    @steps_window.update
    end
    if $UseGold == true
    @gold_window.update
    end
    if CornerLogo == true
      @image.update
    end
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 5  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return

    end

      end
    end
  end
Demo:

Menù per un solo PG

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da kaine
      Questo plugin permette di controllare la velocità dei membri del party e dei mostri individualmente.
       
      Le nuove istruzioni le trovate all'interno del file readme.txt
       
      Autore: Pepsiotaku
       
      Link Download:
      https://www.mediafire.com/file/ugg9dmq9ynmr9zl/battle_atb_overhaul-master.zip/file
    • Da kaine
      Questo plugin va usato insieme alla patch Better AEP che trovate qui. http://www.makerando.com/index.php?/topic/243-better-aep/
       
      Questo plugin controlla se ci sono dei salvataggi nella cartella del vostro progetto, in caso di risultato positivo mette su on uno switch altrimenti resterà su off.
      Solitamente viene usato per fare dei titlescreen custom.
      esempio
       
       
      Per quanto riguarda la parte sulla cancellazione dei salvataggi invece è presente una variabile che controlla l'id dei salvataggi  eliminando quello uguale al valore di suddetta variabile, dopo aver cancellato il salvataggio controlla automaticamente se tutti i salvataggi son stati rimossi, nel caso la risposta sia positiva modifica la switch che controlla la presenza dei salvataggi.
      esempio:
       
       
      è possibile configurarlo con varie opzioni, che trovate nel file txt all'interno dell'archivio.
       
      Copiate ciò che si trova tra gli asterischi nel file Dynrpg.ini.
      ****************************
      [save_delete_and_detector]
      SaveDetectorSwitch=4005
      SaveDetectorCheckSwitch=4009
      DeleteSaveVar=4002
      ****************************
       
      Autore: Pepsiotaku
       
      Link Download:
      http://www.mediafire.com/download/slfsj7fkjj5nqz3/save_delete_and_detector.rar
    • Da Ally
      Nome Script: Ring Menù (Pseudo) 3D
      Versione: 2.1
      Autore/i: Gab!
       
      Informazioni:
      Non fatevi ingannare dal titolo ^^
      Questo script, è una modifica all'originale Ring Menù, ma modificato per renderlo con un effetto visivo simile al 3D...
       
      Screenshots:
       
       
      Istruzioni:
      Inserite lo script sopra Main.
      Altre istruzioni sono all'interno dello script.
       
      Script:
       
       
       
      #=============================================================================# Gab Ring Menu 3D#-----------------------------------------------------------------------------# Autor: Gab!# Data: 28/11/12#-----------------------------------------------------------------------------# Deixa o menu com perspectiva 3D.#=============================================================================module Gab module RingMenu3D#=============================================================================# * CONFIGURAÇÃO#============================================================================= # ID dos ícones ICONS = [ 192, # Itens 112, # Habilidades 169, # Equipamentos 14, # Status 12, # Formação 117, # Salvar 121 # Sair ] # Fonte FNAME = "Trebuchet MS" # Nome FSIZE = 19 # Tamanho FCOLOR = [255, 255, 255, 200] # Cor (R,G,B,A) # Raios R1 = 90 # Para que o efeito ocorra, R2 = 20 # é necessário que R1 > R2. # Precisão de movimento dos ícones (Quanto maior, mais lento) # Valores sugeridos: # 1 = Instantâneo # 5 = Rápido # 10 = Mediano # 20 = Lento MV = 10 # Frequência do movimento dos characters (Quanto maior, mais lento) CFREQ = 15 # BGM (Deixar em branco para remover) BGM = "Battle3" # BGS (Deixar em branco para remover) BGS = "Clock" # Tempo de fade no audio para sair da cena (milissegundos) AudioFade = 1000 # Janelas adicionais Windows = { mapName: [ # Nome do mapa true, # Mostrar? 0, # Posição X 0, # Posição Y 400, # Largura 231, # Ícone 0, # Opacidade ], time: [ # Tempo de jogo true, # Mostrar? 0, # Posição X 34, # Posição Y 160, # Largura 280, # Ícone 0, # Opacidade ], gold: [ # Dinheiro true, # Mostrar? 0, # Posição X 68, # Posição Y 160, # Largura 361, # Ícone 0, # Opacidade ] } #=============================================================================# * FIM DA CONFIGURAÇÃO#============================================================================= endendObject.send(:remove_const, :Scene_Menu)class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # ** Base para as janelas do menu #-------------------------------------------------------------------------- class MenuWindow < Window_Base def initialize(x, y, width, icon, opacity) super(x, y, width, fitting_height(1)) @icon = icon self.opacity = opacity self.contents.font.name = Gab::RingMenu3D::FNAME self.contents.font.size = Gab::RingMenu3D::FSIZE self.contents.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) self.contents.font.outline = false self.contents.font.shadow = true draw_icon(@icon, 0, 0) @clear_rect = Rect.new(30, 0, contents.width - 31, contents.height) refresh end def refresh self.contents.clear_rect(@clear_rect) text_size = self.contents.width - 32 self.contents.draw_text(30, 0, text_size, self.contents.height, text, align) end def align return 2 end def update super refresh if (Graphics.frame_count % Graphics.frame_rate) == 0 end def text return "" end end #-------------------------------------------------------------------------- # ** Nome do mapa #-------------------------------------------------------------------------- class MenuWindowMapName < MenuWindow def text $game_map.display_name end def align return 0 end end #-------------------------------------------------------------------------- # ** Tempo de jogo #-------------------------------------------------------------------------- class MenuWindowTime < MenuWindow def text total_sec = Graphics.frame_count / Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 sprintf("%02d:%02d:%02d", hour, min, sec) end end #-------------------------------------------------------------------------- # ** Dinheiro #-------------------------------------------------------------------------- class MenuWindowGold < MenuWindow def text $game_party.gold.to_s end end #-------------------------------------------------------------------------- # * Inicialização do processo #-------------------------------------------------------------------------- def start super @vocabulary = [ Vocab::item, Vocab::skill, Vocab::equip, Vocab::status, Vocab::formation, Vocab::save, Vocab::game_end ] @actorsNames = $game_party.members.map{|actor| actor.name} create_background @[member=spriters2000] = Sprite_Character.new(@main_viewport, $game_player) @index = 0 @actorIndex = 0 @stage = 0 @pattern = 1 @actor1 = nil @actor2 = nil @bgm = RPG::BGM.new(Gab::RingMenu3D::BGM) @bgs = RPG::BGS.new(Gab::RingMenu3D::BGS) @bgm.play @bgs.play precalculus create_icons create_legend create_actor_selection create_windows end #-------------------------------------------------------------------------- # * Finalização do processo #-------------------------------------------------------------------------- def terminate super RPG::BGM.fade(Gab::RingMenu3D::AudioFade) RPG::BGS.fade(Gab::RingMenu3D::AudioFade) dispose_background @icons.each(&:dispose) @actors.each(&:dispose) @windows.each(&:dispose) @[member=spriters2000].dispose @legend.dispose Input.update $game_map.autoplay end #-------------------------------------------------------------------------- # * Disposição do plano de fundo #-------------------------------------------------------------------------- def dispose_background @background_sprite.dispose end #-------------------------------------------------------------------------- # * Criação do plano de fundo #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap @background_sprite.color.set(16, 16, 16, 128) end #-------------------------------------------------------------------------- # * Pré-calculo #-------------------------------------------------------------------------- def precalculus @elIcons = 2 * Math::PI / Gab::RingMenu3D::ICONS.size @basePointIcons = @[member=spriters2000].y + Gab::RingMenu3D::R2 * (Math.sin(-@elIcons) - 0.5) @maxDifIcons = @[member=spriters2000].y + Gab::RingMenu3D::R2 * Math.sin(Math::PI - @elIcons) - @basePointIcons @moveTimesIcons = @elIcons / Gab::RingMenu3D::MV @addIcons = 0 @elActors = 2 * Math::PI / $game_party.members.size @basePointActors = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.sin(-@elIcons) @maxDifActors = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.sin(Math::PI - @elActors) - @basePointActors @moveTimesActors = @elActors / Gab::RingMenu3D::MV @addActors = 0 end #-------------------------------------------------------------------------- # * Criação dos ícones #-------------------------------------------------------------------------- def create_icons iconset = Cache.system("Iconset") @icons = [] Gab::RingMenu3D::ICONS.each_with_index{|icon_index, index| sprite = Sprite.new sprite.bitmap = iconset sprite.src_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) sprite.ox = sprite.width / 2 sprite.oy = sprite.height / 2 @icons << sprite } @icons[5].tone = Tone.new(0, 0, 0, 255) if $game_system.save_disabled adjust_icons end #-------------------------------------------------------------------------- # * Cria a legenda #-------------------------------------------------------------------------- def create_legend base, c = Bitmap.new(1, 1), nil base.font.name = Gab::RingMenu3D::FNAME base.font.size = Gab::RingMenu3D::FSIZE base.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) maxLen = (@vocabulary + @actorsNames).inject(0){|a, b| c = base.text_size( c.width > a ? c.width : a } @legend = Sprite.new @legend.bitmap = Bitmap.new(maxLen + 5, c.height) @legend.bitmap.font.name = Gab::RingMenu3D::FNAME @legend.bitmap.font.size = Gab::RingMenu3D::FSIZE @legend.bitmap.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) @legend.ox = @legend.width / 2 @legend.oy = @legend.height / 2 @legend.x = @icons.first.x @legend.y = @icons.first.y + @icons.first.height base.dispose legend_refresh end #-------------------------------------------------------------------------- # * Cria seleção de atores #-------------------------------------------------------------------------- def create_actor_selection @actors = $game_party.members.map{|char| actor = Sprite.new actor.bitmap = Cache.character(char.character_name) sign = char.character_name[/^[\!\$]./] if sign && sign.include?('$') cw = actor.bitmap.width / 3 ch = actor.bitmap.height / 4 else cw = actor.bitmap.width / 12 ch = actor.bitmap.height / 8 end actor.ox = cw / 2 actor.oy = ch actor.x = @[member=spriters2000].x + 1.5 * Gab::RingMenu3D::R1 actor.instance_variable_set(:@charData, [char, cw, ch]) actor } adjust_actors update_actors_src end #-------------------------------------------------------------------------- # * Cria janelas #-------------------------------------------------------------------------- def create_windows windows = Gab::RingMenu3D::Windows @windows = [] @windows << MenuWindowMapName.new(*windows[:mapName][1,5]) if windows[:mapName][0] @windows << MenuWindowTime.new(*windows[:time][1,5]) if windows[:time][0] @windows << MenuWindowGold.new(*windows[:gold][1,5]) if windows[:gold][0] end #-------------------------------------------------------------------------- # * Posicionamento e ajuste de opacidade dos ícones #-------------------------------------------------------------------------- def adjust_icons el = 2 * Math::PI / @icons.size t = @addIcons - el @icons.each{|sprite| t += el sprite.x = @[member=spriters2000].x + Math.sin(t) * Gab::RingMenu3D::R1 sprite.y = @[member=spriters2000].y + Gab::RingMenu3D::R2 * (Math.cos(t) - 0.5) dif = (sprite.y - @basePointIcons) / @maxDifIcons sprite.opacity = @stage == 0 ? 127 + 255 * dif : 0 sprite.zoom_x = sprite.zoom_y = [0.5 + dif, 1].min } end #-------------------------------------------------------------------------- # * Posicionamento e ajuste de opacidade dos atores #-------------------------------------------------------------------------- def adjust_actors el = 2 * Math::PI / @actors.size t = @addActors - el @actors.each{|sprite| t += el sprite.x = @[member=spriters2000].x + Math.sin(t) * (Gab::RingMenu3D::R1 + 24) sprite.y = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.cos(t) dif = (sprite.y - @basePointActors) / @maxDifActors sprite.opacity = @stage != 0 ? 127 + 255 * dif : 0 sprite.zoom_x = sprite.zoom_y = [0.5 + dif, 1].min } end #-------------------------------------------------------------------------- # * Movimento dos ícones #-------------------------------------------------------------------------- def rotateIcons(dir) @moveTimesIcons *= -1 if dir == :right Sound.play_cursor Gab::RingMenu3D::MV.times{|sprite| @addIcons += @moveTimesIcons @addIcons %= Math::PI * 2 adjust_icons Graphics.update } if dir == :right @moveTimesIcons *= -1 @index += 1 else @index -= 1 end @index %= @icons.size legend_refresh end #-------------------------------------------------------------------------- # * Movimento dos atores #-------------------------------------------------------------------------- def rotateActors(dir) @moveTimesActors *= -1 if dir == :right Sound.play_cursor Gab::RingMenu3D::MV.times{|sprite| @addActors += @moveTimesActors @addActors %= Math::PI * 2 adjust_actors Graphics.update } if dir == :right @moveTimesActors *= -1 @actorIndex += 1 else @actorIndex -= 1 end @actorIndex %= @actors.size legend_refresh end #-------------------------------------------------------------------------- # * Atualiza legenda #-------------------------------------------------------------------------- def legend_refresh @legend.bitmap.clear text = @stage == 0 ? @vocabulary[@index] : @actorsNames[@actorIndex] @legend.bitmap.draw_text(@legend.bitmap.rect, text, 1) @legend.update end #-------------------------------------------------------------------------- # * Atualização Base #-------------------------------------------------------------------------- def update super @windows.each(&:update) case @stage when 0 update_main_input when 1, 2 @stage == 1 ? update_actors_input : update_formation_input if (Graphics.frame_count % Gab::RingMenu3D::CFREQ) == 0 @pattern = (@pattern + 1) % 3 end update_actors_src end end #-------------------------------------------------------------------------- # * Atualização de input padrão #-------------------------------------------------------------------------- def update_main_input if Input.repeat?(:LEFT) rotateIcons(:left) elsif Input.repeat?(:RIGHT) rotateIcons(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) process_confirm end end #-------------------------------------------------------------------------- # * Atualização de entrada na seleção de ator #-------------------------------------------------------------------------- def update_actors_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) Sound.play_ok process_special_confirm end end #-------------------------------------------------------------------------- # * Atualização de entrada na seleção de ator #-------------------------------------------------------------------------- def update_actors_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) Sound.play_ok process_special_confirm end end #-------------------------------------------------------------------------- # * Atualização de troca de formação #-------------------------------------------------------------------------- def update_formation_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) process_formation_confirm end end #-------------------------------------------------------------------------- # * Processa confirmação #-------------------------------------------------------------------------- def process_confirm case @index when 0 # Item Sound.play_ok SceneManager.call(Scene_Item) when 1, 2, 3, 4 # Skill, Equip, Status, Formação Sound.play_ok @stage = @index == 4 ? 2 : 1 adjust_actors adjust_icons legend_refresh @legend.y -= 28 when 5 # Save if ($game_system.save_disabled) Sound.play_buzzer else SceneManager.call(Scene_Save) Sound.play_ok end when 6 # Sair Sound.play_ok SceneManager.call(Scene_End) end end #-------------------------------------------------------------------------- # * Processa confirmação das opções que requerem seleção de ator #-------------------------------------------------------------------------- def process_special_confirm $game_party.menu_actor = $game_party.members[@actorIndex] case @index when 1 # Skill SceneManager.call(Scene_Skill) when 2 # Equip SceneManager.call(Scene_Equip) when 3 # Status SceneManager.call(Scene_Status) end end #-------------------------------------------------------------------------- # * Processa confirmação de troca de formação #-------------------------------------------------------------------------- def process_formation_confirm if @actor1.nil? @actor1 = @actorIndex @actors[@actor1].tone = Tone.new(150, 150, 150, 0) Sound.play_ok else return Sound.play_buzzer if @actor1 == @actorIndex Sound.play_ok $game_party.swap_order(@actor1, @actorIndex) @actorsNames = $game_party.members.map{|actor| actor.name} @[member=spriters2000].dispose @[member=spriters2000] = Sprite_Character.new(@main_viewport, $game_player) @actors.each(&:dispose) create_actor_selection @actors[@actor1].tone = Tone.new(0, 0, 0, 0) @stage = 0 @actor1 = nil adjust_icons adjust_actors legend_refresh @legend.y += 28 end end #-------------------------------------------------------------------------- # * Processa retorno #-------------------------------------------------------------------------- def process_return case @stage when 0 return_scene when 1 case @index when 1, 2, 3 @stage = 0 adjust_actors adjust_icons legend_refresh @legend.y += 28 when 4 if [email protected]? @actors[@actor1].tone = Tone.new(0, 0, 0, 0) return @actor1 = nil end @stage = 0 adjust_actors adjust_icons legend_refresh @legend.y += 28 end end end #-------------------------------------------------------------------------- # * Atualiza characters #-------------------------------------------------------------------------- def update_actors_src @actors.each{|sprite| char, cw, ch = sprite.instance_variable_get(:@charData) index = char.character_index sx = (index % 4 * 3 + @pattern) * cw sy = (index / 4 * 4) * ch sprite.src_rect.set(sx, sy, cw, ch) } endend
    • Da Ally
      Nome Script: Shanghai Simple Script - Final Fantasy 13 Menu (conversione non ufficiale)
      Versione: 1.2 VX Ace
      Autore/i: Shanghai, mikb89

      Informazioni:
      Questo script nasce da una richiesta di , fatta in questo topic.
      Postato sul topic apposta a grande richiesta (xD), vi lascio liberi di usarlo a patto che:
      creditiate anche MihaChan, in quanto se non l'avesse chiesto lei adesso lo script non ci sarebbe; lo personalizziate abbastanza, in modo da evitare che si generino menu tutti uguali (va a vostro vantaggio comunque ^^). Features:
      Questo script include:
      Main menu;  
      Skill menu;  
      Equip Menu;  
      Status Menu  
      Istruzioni:
      Creare nuove voci sopra Main ed inserire gli script.

      I seguenti file grafici vanno personalizzati e aggiunti in Graphics/System coi nomi indicati:


      I nomi possono comunque essere cambiati nello script, dove andrà configurata anche la grafica da usare per i vari eroi.

      Per lo Skill Menu, è necessario usare lo script JP Manager dello Yanfly Engine Ace.
      Per l'Equip Menu, è necessario usare lo script Equip Engine dello Yanfly Engine Ace.
      Gli script di Yanfly potrete trovarli qui una volta che il topic sarà sistemato, oppure con una rapida ricerca in rete.

      Oppure, scaricate una demo contenente già tutto questo, qui (1.91 MB).
    • Da Ally
      Nome Script: Menù per 3 pg
      Versione: 1.3
      Autore/i: Melosx

      Informazioni:
      Menu adatto per giochi con 3 pg.

      Screenshots:


      Istruzioni:
      Come al solito copiate lo script sopra Main e sotto Materials.
      Tutto ciò che dovete fare è configurarlo, se volete, come più vi pare grazie al comodo modulo.
      Leggetevi la pèarte iniziale dello script per maggiori info.

      Script:


      #============================================================================= # Menu per 3 pg #============================================================================= # Autore:   Melosx # Versione: 1.3 # Data di creazione: 23-5-2011 => v1.0 #                    24-5-2011 => v1.1 #                    25-5-2011 => v1.1.1 #                    27-5-2011 => v1.2 #                     2-6-2011 => v1.3 # # Feature: # # - Aggiunta barra dell'esperienza. # - Possibilità di cambiare il numero di status visibili. # - Possibilità di modificare lunghezza, posizione(x,y) e colori delle bare #   PV/PM/EXP. # - Possibilità di scegliere se visualizzare il face o la grafica del chara. # - Altro che non ricordo XD... EHEHEHEHEHEH... Vi basta comunque dare un occhio #   alle voci del modulo di configurazione per vedere l mole di roba che si può #   personalizzare. # # Storia: # # 1.0:      Cambiata la composizione delle finestre per come si presentano ora. #           Aggiunta la Window_Tempo #            # 1.1:      Creato il modulo di configurazione per rendere estremamente facile la #           personalizzazione del menù. #            # 1.1.1:    Fixato un piccolo bug con Window_SkillStatus. #           Aggiunte le novità della Window_MenuStatus nel menu Status. #            # 1.2:      Possibilità di scegliere tra face o grafica del chara con correzioni #           automatiche alle posizioni in base alla scelta. #           Unione dei tre script iniziali in uno solo per un facile inserimento #           in un progetto. # # 1.3:      Terminato il modulo MAW. # # Note: # Cambiando il numero di status visibili nel menu cambiano anche quelli # visibili in Status. # Cambiando il colore delle barre cambierà anche nelle barre in bataglia e nei # menu dove sono presenti barre(vedrò di risolvere questo problema se a qualcuno # da fastidio). #============================================================================= #============================================================================== # ** Modulo di configurazione di Window_MenuStatus #============================================================================== module MMS #============================================================================== # ** Colori delle barre #------------------------------------------------------------------------------ # Per cambiare i colori delle barre avrete bisogno di vedere la windowskin del # vostro gioco. In baso a destra infatti trovate i colori che il gioco utilizzerà # per creare le barre. Gli indici dei colori partono da 0 che è il primo quadrato # in alto a sinistra e arrivano a 31 l'ultimo quadrato in baso a destra. # Ecco uno schema degli indici # #          | 0| 1| 2| 3| 4| 5| 6| 7| #          | 8| 9|10|11|12|13|14|15| #          |16|17|18|19|20|21|22|23| #          |24|25|26|27|28|29|30|31| # #==============================================================================     USAFACE = false #------------------------------------------------------------------------------ # ** Variabili generali #------------------------------------------------------------------------------ # Cambiandone il valore si stabilisce il valore di partenza di tutte le altre # variabili. # # Default # MSX = 0 # MSY = 0 #------------------------------------------------------------------------------   MSX = 0     # - verso sinistra, + verso destra   MSY = 0     # - verso l'alto, + verso il basso   #------------------------------------------------------------------------------ # ** Sposta la grafica del character #------------------------------------------------------------------------------   CHX = 25     # - verso sinistra, + verso destra   CHY = 5      # - verso l'alto, + verso il basso ##------------------------------------------------------------------------------ # ** Sposta la grafica del face #------------------------------------------------------------------------------   FACEX = 2   FACEY = 2   FACEGR = 80   #------------------------------------------------------------------------------ # ** Nome del personaggio #------------------------------------------------------------------------------   NOMEX = 5      # - verso sinistra, + verso destra   NOMEY = 35     # - verso l'alto, + verso il basso   #------------------------------------------------------------------------------ # ** Classe del personaggio #------------------------------------------------------------------------------   CLASSEX = 80      # - verso sinistra, + verso destra   CLASSEY = -10     # - verso l'alto, + verso il basso #------------------------------------------------------------------------------ # ** Status #------------------------------------------------------------------------------   STATUSX = 188     # - verso sinistra, + verso destra   STATUSY = 46      # - verso l'alto, + verso il basso   STATUSN = 8       # Numero di status da visualizzare   #------------------------------------------------------------------------------ # ** Scritta status #------------------------------------------------------------------------------   NSTATUS = "Status:"      # Termine che indica gli status   NSTATUSX = 80            # - verso sinistra, + verso destra   NSTATUSY = 46            # - verso l'alto, + verso il basso   ##------------------------------------------------------------------------------ # ** Livello del personaggio #------------------------------------------------------------------------------   LIVX = 80      # - verso sinistra, + verso destra   LIVY = -10     # - verso l'alto, + verso il basso   #------------------------------------------------------------------------------ # ** Barra PV #------------------------------------------------------------------------------   PVX = 205     # - verso sinistra, + verso destra   PVY = -12     # - verso l'alto, + verso il basso     PVBL = 150    # Lunghezza della barra   PVBC1 = 28    # Colore 1   PVBC2 = 29    # Colore 2   PVBCC = 0     # Colore del bordo   PVBCS = 15    # Colore sfondo barra   #------------------------------------------------------------------------------ # ** Barra PM #------------------------------------------------------------------------------   PMX = 205     # - verso sinistra, + verso destra   PMY = -12     # - verso l'alto, + verso il basso     PMBL = 150    # Lunghezza della barra   PMBC1 = 12    # Colore 1   PMBC2 = 4     # Colore 2   PMBCC = 0     # Colore del bordo   PMBCS = 15    # Colore sfondo barra   #------------------------------------------------------------------------------ # ** Scritta Esperienza e valori #------------------------------------------------------------------------------   NEXP = "Esperienza"       # Termine che indica l'esperienza   NEXPX = 400               # - verso sinistra, + verso destra   NEXPY = 0                 # - verso l'alto, + verso il basso   #------------------------------------------------------------------------------ # Barra esperienza #------------------------------------------------------------------------------   EXPBX = 400      # - verso sinistra, + verso destra   EXPBY = 17       # - verso l'alto, + verso il basso     EXPBL = 100      # Lunghezza della barra   EXPBC1 = 14      # Colore 1   EXPBC2 = 6       # Colore 2   EXPBCC = 0       # Colore del bordo   EXPBCS = 15      # Colore sfondo barra end #============================================================================== # ** Modulo di configurazione delle altre Window #============================================================================== module MAW   #------------------------------------------------------------------------------ # ** Window_Gold - Configurazione #------------------------------------------------------------------------------   WGX = 0   WGY = 360   WGSX = 4            # Coordinata x delle scritte   WGSY = 0            # Coordinata y delle scritte   WGSL = 220          # Lunghezza area di scrittura. Se il nome della moneta del                       # vostro gioco è lungo e non lo visualizzate tutto diminuite                       # il valore cosi entrerà tutto.                          WGFNT = 18          # Grandezza font.                                                                      #------------------------------------------------------------------------------ # Impostare, in base alle proprie necessità, una delle tre variabili,WGIS, WGSS # o WGISS, su true e le altre due su false #------------------------------------------------------------------------------                                                 WGIS = false        # true/false => SOLO l'icona   WGI = 147           # ID dell'icona     WGSS = false        # true/false => SOLO la scritta   WGSN = "Denaro"     # Termine     WGISS = true        # true/false => Icona + Scritta   WGIAG = 70          # muove a destra o sinistra l'icona. Da cambiare, se WGISS                       # è impostato su true, in base all'esigenza.   #------------------------------------------------------------------------------ # ** Window_Tempo - Configurazione #------------------------------------------------------------------------------   WTX = 272   WTY = 360   WTSX = 0                         # Coordinata x delle scritte.   WTSY = 0                         # Coordinata y delle scritte.   WTSL = 220                       # Lunghezza area di scrittura.   WTSN = "Tempo di gioco:"         # Termine che indica il tempo di gioco.   WTFNT = 18                       # Grandezza font. end #============================================================================== # ** Window_MenuStatus #============================================================================== class Window_MenuStatus < Window_Selectable include MMS       def initialize(x, y)     super(0, 56, 544, 305)     refresh     self.active = true     self.index = -1   end   def refresh     self.contents.clear     @item_max = 3     for actor in $game_party.members       x = MMS::MSX       y = actor.index * 92 + WLH / 2 + MMS::MSX     if MMS::USAFACE == true       @piux = 10       @piuy = 10       draw_actor_face(actor,      x + MMS::FACEX,          actor.index * 92 + MMS::FACEY,             MMS::FACEGR)     else       @piux = 0       @piuy = 0       draw_actor_graphic(actor,   x + MMS::CHX,                    y + (WLH + MMS::CHY))     end       draw_actor_name(actor,      x + MMS::NOMEX,                  y + @piuy = 10 +                   MMS::NOMEY)       draw_actor_class(actor,     x + MMS::CLASSEX + @piux,        y + (WLH * 0) +                    MMS::CLASSEY)       draw_actor_state(actor,     x + MMS::STATUSX + @piux,        y +                                MMS::STATUSY)       draw_actor_level(actor,     x + MMS::LIVX + @piux,           y + (WLH * 1) +                    MMS::LIVY)       draw_actor_hp(actor,        x + MMS::PVX + @piux,           (y +                                MMS::PVY) + WLH * 0, width =      MMS::PVBL)       draw_actor_mp(actor,        x + MMS::PMX + @piux,           (y +                                MMS::PMY) + WLH * 1, width =      MMS::PMBL)       draw_actor_exp_gauge(actor, x + MMS::EXPBX,                  actor.index * 92 +                 MMS::EXPBY)       draw_exp_info(actor ,       x + MMS::NEXPX,                  actor.index * 92 +                 MMS::NEXPY)       self.contents.draw_text(    x + MMS::NSTATUSX + @piux,       y +                                MMS::NSTATUSY, 100, 32,           MMS::NSTATUS, 2)     end   end   def update_cursor     if @index < 0       self.cursor_rect.empty     elsif @index < @item_max       self.cursor_rect.set(0, @index * 92, contents.width, 85)     elsif @index >= 100       self.cursor_rect.set(0, (@index - 100) * 92, contents.width, 85)     else       self.cursor_rect.set(0, 0, contents.width, @item_max * 85)     end   end     def draw_exp_info(actor, x, y)     s1 = actor.exp_s     s2 = actor.corr_exp     s3 = s1-s2     s4 = actor.pros_lvl_exp     exp = s3.to_s + " / " + s4.to_s     self.contents.draw_text(x, y + WLH * 0, 100, WLH, MMS::NEXP)     self.contents.draw_text(x, y + WLH * 1, 100, WLH, exp, 2)   end         def draw_actor_exp_gauge(actor, x, y, width = MMS::EXPBL)     s1 = actor.exp_s     s2 = actor.corr_exp     s3 = s1-s2     s4 = actor.pros_lvl_exp     gw = width * s3 / s4     gc1 = text_color(MMS::EXPBC1)     gc2 = text_color(MMS::EXPBC2)     gauge_back_color = text_color(MMS::EXPBCS)     gauge_cornice_color = text_color(MMS::EXPBCC)     self.contents.fill_rect(x, y + WLH, width + 2, 8, gauge_cornice_color)     self.contents.fill_rect(x + 1, y + WLH + 1, width, 6, gauge_back_color)     self.contents.gradient_fill_rect(x + 1, y + WLH + 1, gw, 6, gc1, gc2)   end   end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ #  * aggiunte #============================================================================== class Game_Actor < Game_Battler     def corr_exp     return @exp_list[@level]   end   def pros_lvl_exp     return @exp_list[@level+1]-@exp_list[@level]   end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ #  * alias #============================================================================== class Window_Base < Window   include MMS     alias melosx_draw_actor_state draw_actor_state   alias melosx_draw_actor_hp_gauge draw_actor_hp_gauge   alias melosx_draw_actor_mp_gauge draw_actor_mp_gauge     def draw_actor_state(actor, x, y, width = 24 * MMS::STATUSN)     count = 0     for state in actor.states       draw_icon(state.icon_index, x + 24 * count, y)       count += 1       break if (24 * count > width - 24)     end   end     def draw_actor_hp_gauge(actor, x, y, width = 120)     gw = width * actor.hp / actor.maxhp     gc1 = text_color(MMS::PVBC1)     gc2 = text_color(MMS::PVBC2)     gauge_cornice_color = text_color(MMS::PVBCC)     self.contents.fill_rect(x, y + WLH - 8, width + 2, 8, gauge_cornice_color)     self.contents.fill_rect(x + 1, y + WLH - 8 + 1, width, 6, text_color(MMS::PVBCS))     self.contents.gradient_fill_rect(x + 1, y + WLH - 8 + 1, gw, 6, gc1, gc2)   end   def draw_actor_mp_gauge(actor, x, y, width = 120)     gw = width * actor.mp / [actor.maxmp, 1].max     gc1 = text_color(MMS::PMBC1)     gc2 = text_color(MMS::PMBC2)     gauge_cornice_color = text_color(MMS::PMBCC)     self.contents.fill_rect(x, y + WLH - 8, width + 2, 8, gauge_cornice_color)     self.contents.fill_rect(x + 1, y + WLH - 8 + 1, width, 6, text_color(MMS::PMBCS))     self.contents.gradient_fill_rect(x + 1, y + WLH - 8 + 1, gw, 6, gc1, gc2)   end     end #============================================================================== # ** Window_SkillStatus #------------------------------------------------------------------------------ #  * alias #============================================================================== class Window_SkillStatus < Window_Base  alias melosx_refresh refresh     def refresh     self.contents.clear     draw_actor_name(@actor, 4, 0)     draw_actor_level(@actor, 140, 0)     draw_actor_hp(@actor, 240, 0)     draw_actor_mp(@actor, 390, 0)   end end #============================================================================== # ** Window_Status #------------------------------------------------------------------------------ #  * alias + aggiunte #============================================================================== class Window_Status < Window_Base   include MMS     alias melosx_refresh refresh   alias melosx_draw_exp_info draw_exp_info     def refresh     self.contents.clear     draw_actor_name(@actor, 4, 0)     draw_actor_class(@actor, 128, 0)     draw_actor_face(@actor, 8, 32)     draw_basic_info(128, 32)     draw_parameters(32, 160)     draw_actor_exp_gauge(308, 87, (MMS::EXPBL + 50))     draw_exp_info(288, 70)     draw_equipments(288, 160)   end   def draw_basic_info(x, y)     draw_actor_level(@actor, x, y + WLH * 0)     draw_actor_state(@actor, 308, 12 + WLH * 1)     self.contents.draw_text(288, 5, 100, 32, MMS::NSTATUS, 0)     draw_actor_hp(@actor, x, y + WLH * 2)     draw_actor_mp(@actor, x, y + WLH * 3)   end     def draw_exp_info(x, y)     s1 = @actor.exp_s     s2 = @actor.next_exp_s     exp = s1.to_s + " / " + s2.to_s     self.contents.draw_text(x, y + WLH * 0, 100, WLH, MMS::NEXP)     self.contents.draw_text(x + 110, y + WLH * 1, 100, WLH, exp, 0)   end         def draw_actor_exp_gauge(x, y, width = MMS::EXPBL)     s1 = @actor.exp_s     s2 = @actor.next_exp_s     gw = width * s1 / s2     gc1 = text_color(MMS::EXPBC1)     gc2 = text_color(MMS::EXPBC2)     gauge_back_color = text_color(MMS::EXPBCS)     gauge_cornice_color = text_color(MMS::EXPBCC)     self.contents.fill_rect(x, y + WLH, width + 2, 8, gauge_cornice_color)     self.contents.fill_rect(x + 1, y + WLH + 1, width, 6, gauge_back_color)     self.contents.gradient_fill_rect(x + 1, y + WLH + 1, gw, 6, gc1, gc2)   end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ #  * alias #============================================================================== class Scene_Menu < Scene_Base   alias melosx_start start   alias melosx_terminate terminate   alias melosx_update update   alias melosx_create_command_window create_command_window  def start     super     create_menu_background     create_command_window     @gold_window = Window_GoldM.new(MAW::WGX, MAW::WGY)     @status_window = Window_MenuStatus.new(160, 0)     @tempo_gioco = Window_Tempo.new(MAW::WTX, MAW::WTY)   end   def terminate     super     dispose_menu_background     @command_window.dispose     @gold_window.dispose     @status_window.dispose     @tempo_gioco.dispose   end   def update     super     update_menu_background     @command_window.update     @gold_window.update     @status_window.update     @tempo_gioco.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(544, [s1, s2, s3, s4, s5, s6 ] , 6, 0, 16)     @command_window.index = @menu_index     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 end       #============================================================================== # ** Window_Tempo #============================================================================== class Window_Tempo < Window_Base def initialize(x, y)     super(x, y, 272, WLH + 32)     refresh   end   def update     super     sec = (Graphics.frame_count / Graphics.frame_rate) % 60     if sec > @total_sec % 60 or sec == 0       refresh     end       end      def refresh     self.contents.clear         @total_sec = Graphics.frame_count / Graphics.frame_rate          ora = @total_sec / 60 / 60     min = @total_sec / 60 % 60     sec = @total_sec % 60     tempo = sprintf("%02d:%02d:%02d", ora, min, sec)     self.contents.font.color = normal_color     self.contents.font.size = MAW::WTFNT     self.contents.draw_text(MAW::WTSX, MAW::WTSY, MAW::WTSL, WLH, tempo, 2)     self.contents.draw_text(MAW::WTSX, MAW::WTSY, MAW::WTSL, WLH, MAW::WTSN, 0)             end end #============================================================================== # ** Window_Gold #============================================================================== class Window_GoldM < Window_Base include MAW     def initialize(x, y)     super(x, y, 272, WLH + 32)     refresh   end   def refresh     self.contents.clear     self.contents.font.color = normal_color     self.contents.font.size = MAW::WTFNT     draw_currency_value($game_party.gold, MAW::WGSX, MAW::WGSY, MAW::WGSL)     if MAW::WGIS == true       draw_icon(MAW::WGI, 0, 0)     elsif MAW::WGISS == true       draw_icon(MAW::WGI, MAW::WGIAG, 0)       self.contents.draw_text(MAW::WGSX, MAW::WGSY, MAW::WGSL, WLH, MAW::WGSN, 0)     elsif MAW::WGSS == true       self.contents.draw_text(MAW::WGSX, MAW::WGSY, MAW::WGSL, WLH, MAW::WGSN, 0)     end               end end Demo:
      N/D
×