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
  • 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ù FFIX
      Versione: N/D
      Autore/i: BigEd781

      Informazioni:
      Questo script permette di rendere il vostro menu molto simile al menu di Final Fantasy IX. Viene fornito con un windowskin personalizzata e alcune immagini per la corretta visualizzazione del menu.

      Istruzioni:
      Inserite lo script sopra Main, e nella cartella Graphics/Pictures inseriteci queste immagini:



      Script:


      =begin                                             BigEd781' Final Fantasy IX Menu             Credit to PainHurt at rpgmakervx.net for most of the graphics =end module FF9_Config          # set this to 'true' if you would like to use a cusotm background image   USE_CUSTOM_BACK = false   # the name of the custom background image, without the file extension (no .png)   BACK_NAME = 'StoneBackground'   # if you set this to 'true', you must be using the enhanced   # Window class script that I posted:  You can get that script here:   # http://www.rpgmakervx.net/index.php?showtopic=8042&hl=   # this will make the provided FF9 windowskin look really good.   USE_TILED_WINDOW = false   # When this is set to 'true', the menu cirsor will animate back and forth.   # When set to 'false', it will stay in place   ANIMATE_CURSOR = false   # When set to 'true', four background panels are always drawn.   # When set to 'false', a panel is only drawn for each party member   DRAW_FOR_ALL = true   # the name of the font used in the menu.     # use 'Font.default_name' for the default font.  Try 'Centaur' for a nice, smaller font.   DEFAULT_FONT = Font.default_name   # set this to true to enable the font above for all windows.   # also sets the back_opacity to 255 for all windows.     # I recommend setting this to 'true' to maintain a consistent look.   USE_FOR_ALL = true   # the icon id for your gold window portion of the menu, 194 by default.   GOLD_ICON_ID = 194 end if FF9_Config::USE_FOR_ALL       Font.default_name = FF9_Config::DEFAULT_FONT   class Window_Base < Window          alias :eds_pre_ff9_menu_base_initialize :initialize     def initialize(*args)       eds_pre_ff9_menu_base_initialize(*args)         self.stretch = false if FF9_Config::USE_TILED_WINDOW       self.back_opacity = 255     end        end end class Window_Base < Window   CAPTION_COLOR = Color.new(255,255,255)#(228, 228, 228)   CAPTION_HEIGHT = 12   X_OFFSET = 16   Y_OFFSET = -5   alias :eds_pre_window_caption_intialize :initialize   def initialize(*args)           eds_pre_window_caption_intialize(*args)         @caption_sprite = Sprite_Base.new(self.viewport)     create_caption_bitmap(1, CAPTION_HEIGHT)             @caption_sprite.x = self.x + X_OFFSET     @caption_sprite.y = self.y + Y_OFFSET     @caption_sprite.z = self.z + 1   end   def x=(value)     super     @caption_sprite.x = value + X_OFFSET unless @caption_sprite.nil?   end   def y=(value)     super     @caption_sprite.y = value + Y_OFFSET unless @caption_sprite.nil?   end   def z=(value)     super     @caption_sprite.z = value + 1 unless @caption_sprite.nil?   end   def caption=(text)     return unless text.is_a?(String)     return if text.empty?     @caption = text     width = @caption_sprite.bitmap.text_size(@caption).width     create_caption_bitmap(width, CAPTION_HEIGHT)         draw_caption   end     def create_caption_bitmap(w, h)     @caption_sprite.bitmap = Bitmap.new(w, h)         @caption_sprite.bitmap.font.size = 12     @caption_sprite.bitmap.font.color = CAPTION_COLOR     @caption_sprite.bitmap.font.bold = true     end   def draw_caption     unless @caption.nil?       h = @caption_sprite.bitmap.height       w = @caption_sprite.bitmap.width       rect = Rect.new( 0, h / 2, w, h / 4 )       @caption_sprite.bitmap.fill_rect(rect, Color.new(0, 0, 0, 96))             @caption_sprite.bitmap.draw_text(@caption_sprite.src_rect, @caption)           end   end   alias :eds_pre_caption_window_dispose :dispose   def dispose     eds_pre_caption_window_dispose     @caption_sprite.dispose   end   def find_window_width(text)                   return Bitmap.new(544, 416).text_size(text).width + 32   end     end class Window_TimeGold < Window_Base          def initialize(x, y)       width = find_window_width("9999999")     width = 140 if width < 140     super(x, y, width, WLH + 58)         self.back_opacity = 255     self.stretch = false if FF9_Config::USE_TILED_WINDOW     self.contents.font.name = FF9_Config::DEFAULT_FONT     self.caption = "TIME & #{Vocab.gold}"     @time_icon = Cache.picture('Timer')       @intern_frame_count = 0     refresh   end   def draw_time     sec = (Graphics.frame_count / 60) % 60     min = (Graphics.frame_count / 3600) % 60     hrs = Graphics.frame_count / 216000         self.contents.font.color = Color.new(255, 255, 255)         time = "%02d:%02d:%02d" % [hrs, min, sec]     self.contents.draw_text(0, 0, self.contents.width, WLH, time, 2)       end     def refresh     self.contents.clear     self.contents.blt(0, 0, @time_icon, @time_icon.rect)     draw_icon(FF9_Config::GOLD_ICON_ID, 2, WLH)       draw_currency_value($game_party.gold, 0, WLH, self.contents.width)     draw_time   end   def draw_currency_value(value, x, y, width)     gold_text = Vocab.gold     cx = contents.text_size(gold_text[0,1]).width     self.contents.font.color = normal_color     self.contents.draw_text(x, y, width - cx - 2, WLH, value, 2)     self.contents.font.color = system_color     # just print the first character of Vocab::gold     self.contents.draw_text(x, y, width, WLH, gold_text[0,1], 2)   end   def update     super     @intern_frame_count += 1     return if (@intern_frame_count % 60) != 0               refresh   end   def find_window_width(text)                   return Bitmap.new(544, 416).text_size(text).width + 80   end end class Window_MenuLocation < Window_Base   def initialize(x, y)     @map_name = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name     width = find_window_width(@map_name)     super(x, y, width, WLH + 32)         self.stretch = false if FF9_Config::USE_TILED_WINDOW     self.contents.font.name = FF9_Config::DEFAULT_FONT     self.back_opacity = 255     self.caption = "LOCATION"     refresh   end   def refresh     self.contents.clear         self.contents.draw_text(0, 0, self.contents.width, WLH,  @map_name, 1)   end   def find_window_width(text)                   return Bitmap.new(544, 416).text_size(text).width + 48   end end class Window_Command < Window_Selectable   alias :eds_pre_ff9_menu_win_command_init :initialize   def initialize(*args)     @font_name = Font.default_name         eds_pre_ff9_menu_win_command_init(*args)       end   #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------   def refresh     self.contents.clear         self.contents.font.name = @font_name     for i in 0...@item_max       draw_item(i)     end   end   def font_name=(name)     @font_name = name       end end class Window_Uses < Window_Base     def initialize(right, y, item)         @remaining_text = "Remaining: #{$game_party.item_number(item)}"     w = 160     x = right ? (544 - w) : 0         super(x, y, w, WLH + 32)         self.stretch = false if FF9_Config::USE_TILED_WINDOW     self.contents.font.name = FF9_Config::DEFAULT_FONT     refresh   end   def item=(item)         return unless item.is_a?(RPG::Item)     @remaining_text = "Remaining: #{$game_party.item_number(item)}"           refresh   end   def visible=(value)     super     refresh if value   end   def refresh     self.contents.clear     self.contents.draw_text(self.contents.rect, @remaining_text, 1)   end end class Window_SkillUses < Window_Base     def initialize(right, y, actor, skill)         @remaining_text = make_info_string(actor, skill)     w = 182     x = right ? (544 - w) : 0             super(x, y, w, WLH + 32)       self.stretch = false if FF9_Config::USE_TILED_WINDOW     self.contents.font.name = FF9_Config::DEFAULT_FONT     refresh   end   def make_info_string(actor, skill)     return if actor.nil? || skill.nil?     cost = actor.calc_mp_cost(skill)     return "Unlimited" if cost < 1     return "Remaining: #{actor.mp / cost}"   end   def set_skill(actor, skill)     return if actor.nil? || skill.nil?     return unless skill.is_a?(RPG::Skill)     @remaining_text = make_info_string(actor, skill)         refresh   end   def visible=(value)     super     refresh if value   end   def refresh         self.contents.clear     self.contents.draw_text(self.contents.rect, @remaining_text, 1)   end end class Window_MenuStatus < Window_Selectable        #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------   def initialize(x, y)     super(x, y, 452, 352)           @bg_image = Cache.picture('FF9_MenuBar')       @arrow_image = Cache.picture('Pointer')     create_arrow_sprites     @sprite_last_draw_x = 0     @sprite_inc_x = 1     @intern_frame_count = 0         self.stretch = false if FF9_Config::USE_TILED_WINDOW     self.contents.font.name = FF9_Config::DEFAULT_FONT     self.opacity = 0         self.z = 99             self.active = false     self.index = -1     refresh   end   #--------------------------------------------------------------------------   # * create_arrow_sprites   #--------------------------------------------------------------------------   def create_arrow_sprites       @arrow_sprites = []     for i in 0..3       @arrow_sprites << Sprite.new       @arrow_sprites[i].bitmap = Bitmap.new(@arrow_image.width + 7, @arrow_image.height)       @arrow_sprites[i].x = self.x       @arrow_sprites[i].y = (i * 80) + self.y + 40             @arrow_sprites[i].z = 999             end   end   #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------   def refresh     self.contents.clear     @item_max = $game_party.members.size     draw_background_windows if FF9_Config::DRAW_FOR_ALL     for actor in $game_party.members       x = 104       y = actor.index * 80             y_offset = 6             draw_background_window(0, y) unless FF9_Config::DRAW_FOR_ALL       draw_actor_face(actor, 19, y + 4, 73)       draw_actor_name(actor, x, y + y_offset)       draw_actor_class(actor, x + 125, y + y_offset) if actor.states.empty?       draw_actor_level(actor, x, y + WLH * 1)             draw_actor_state(actor, x + 125, y + y_offset)       draw_actor_hp(actor, x, ( + (WLH * 2) - 5))       draw_actor_mp(actor, x + 125, ( + (WLH * 2) - 5))     end   end     #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------   def update_cursor                   if @index < 0                     #refactor into update arrow method       @arrow_sprites.each { |sprite| sprite.bitmap.clear }       return     end     @intern_frame_count += 1     return unless (@intern_frame_count % 5) == 0     if @sprite_last_draw_x >= 7             @sprite_inc_x = -1     elsif @sprite_last_draw_x <= 0       @sprite_inc_x = 1     end     update_arrow_sprites   end   #--------------------------------------------------------------------------   # * update_arrow_sprites   #--------------------------------------------------------------------------   def update_arrow_sprites         @arrow_sprites.each { |sprite| sprite.bitmap.clear }         if @index == 99   # all selected               return unless (@intern_frame_count % 10) == 0       draw_arrow_sprites(@arrow_sprites, false)           else       draw_arrow_sprites([@arrow_sprites[@index]], FF9_Config::ANIMATE_CURSOR)           end   end   #--------------------------------------------------------------------------   # * draw_arrow_sprites   #--------------------------------------------------------------------------   def draw_arrow_sprites(sprites, animated=true)     for sprite in sprites                 image_x = animated ? @sprite_last_draw_x + @sprite_inc_x : 0       @sprite_last_draw_x = image_x                   sprite.bitmap.blt(image_x, 0, @arrow_image, @arrow_image.rect)     end   end   #--------------------------------------------------------------------------   # * y=   #--------------------------------------------------------------------------   def y=(value)     super     unless @arrow_sprites.nil?       for i in 0..3         @arrow_sprites[i].y = (i * 80) + value + 40       end     end   end   #--------------------------------------------------------------------------   # * x=   #--------------------------------------------------------------------------   def x=(value)     super     unless @arrow_sprites.nil?       @arrow_sprites.each { |sprite| sprite.x = value }     end   end   #--------------------------------------------------------------------------   # * draw_background_windows   #--------------------------------------------------------------------------   def draw_background_windows       self.contents.blt(0, 0, @bg_image, @bg_image.rect)         self.contents.blt(0, 80, @bg_image, @bg_image.rect)         self.contents.blt(0, 160, @bg_image, @bg_image.rect)         self.contents.blt(0, 240, @bg_image, @bg_image.rect)       end     #--------------------------------------------------------------------------   # * draw_background_window (single)   #--------------------------------------------------------------------------   def draw_background_window(x, y)     self.contents.blt(x, y, @bg_image, @bg_image.rect)       end   #--------------------------------------------------------------------------   # * visible   #--------------------------------------------------------------------------   def visible=(value)     super     @arrow_sprites.each { |sprite| sprite.visible = value }   end   #--------------------------------------------------------------------------   # * dispose   #--------------------------------------------------------------------------   alias :eds_pre_ff9_win_stat_dispose :dispose   def dispose     eds_pre_ff9_win_stat_dispose     @arrow_sprites.each { |sprite| sprite.dispose }   end   def enable_cursor?(rect=nil)     # for compatibility with the improved command window     return false   end     end class Scene_Menu          #--------------------------------------------------------------------------   # * create_menu_background (only if USE_CUSTOM_BACK == true)   #--------------------------------------------------------------------------   if FF9_Config::USE_CUSTOM_BACK          def create_menu_background       @menuback_sprite = Sprite.new       @menuback_sprite.bitmap = Cache.picture(FF9_Config::BACK_NAME)       @menuback_sprite.color.set(16, 16, 16, 128)       update_menu_background     end        end   #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------       def create_command_window     s1 = Vocab::item     s2 = Vocab::skill     s3 = Vocab::equip     s4 = Vocab::status     s5 = Vocab::save     s6 = Vocab::game_end     # just changed the width of the window here     @command_window = Window_Command.new(132, [s1, s2, s3, s4, s5, s6])     @command_window.index = @menu_index     @command_window.stretch = false if FF9_Config::USE_TILED_WINDOW     if $game_party.members.size == 0          # If number of party members is 0       @command_window.draw_item(0, false)     # Disable item       @command_window.draw_item(1, false)     # Disable skill       @command_window.draw_item(2, false)     # Disable equipment       @command_window.draw_item(3, false)     # Disable status     end     if $game_system.save_disabled             # If save is forbidden       @command_window.draw_item(4, false)     # Disable save     end           # new stuff here         @command_window.font_name = FF9_Config::DEFAULT_FONT     @command_window.x = 528 - @command_window.width     @command_window.y = 16     @command_window.back_opacity = 255   end   #--------------------------------------------------------------------------   # * This method is intended to fix some compatibility problems   #   that scripts run into when they change the command window   #   in some way.  So, we let them override "create_command_window"   #   and we simply don't call it from the "start" method.   #   Instead, we call this method which does some extra checking.   #--------------------------------------------------------------------------   def eds_create_command_window     create_command_window     old_commands = @command_window.commands     return if old_commands == [ Vocab::item,                                 Vocab::skill,                                 Vocab::equip,                                 Vocab::status,                                 Vocab::save,                                 Vocab::game_end ]     # so we know that the default command window is not being used     # we don't want to create another window, so we manually resize it     # before the player can see.       long = ''     # dynamically size the width based on the longest command     old_commands.each { |command| long = command if command.length > long.length }     # set the index to -1 so that the rectangle disappears.     # if we don't do this, you can see the selection rectangle resize.     @command_window.index = -1     @command_window.width = @command_window.contents.text_size(long).width + 42     @command_window.contents = Bitmap.new( @command_window.width - 32,                                            @command_window.height - 32 )         @command_window.font_name = FF9_Config::DEFAULT_FONT     @command_window.x = 528 - @command_window.width     @command_window.y = 16     @command_window.back_opacity = 255             @command_window.refresh     @command_window.index = @menu_index   end   #--------------------------------------------------------------------------   # * OVERWRITTEN   #--------------------------------------------------------------------------   def start     super     create_menu_background     #call this method for compatibility     eds_create_command_window     @gold_window = Window_TimeGold.new(372, 342)     @gold_window.y -= @gold_window.height     @gold_window.x = 528 - @gold_window.width     @status_window = Window_MenuStatus.new(0, 12)     @location_window = Window_MenuLocation.new(0, 0)     @location_window.x = 528 - @location_window.width       @location_window.y = 398 - @location_window.height   end   #--------------------------------------------------------------------------   # * Termination Processing   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_menu_terminate :terminate   def terminate     eds_pre_ff9_menu_scene_menu_terminate     @location_window.dispose   end end class Scene_Item < Scene_Base   #--------------------------------------------------------------------------   # * start   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_item_start :start   def start             eds_pre_ff9_menu_scene_item_start     @target_window.y = 58         @uses_window = Window_Uses.new(true, @help_window.height, nil)     @uses_window.visible = false   end     #--------------------------------------------------------------------------   # * OVERWRITTEN   #   - right-align flag ignored   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_win_stat_show_target_window :show_target_window   def show_target_window(right)       @uses_window.item = @item_window.item     @uses_window.visible = true         @item_window.visible = false         @item_window.active = false         @target_window.visible = true     @target_window.active = true       @viewport.rect.set(0, 0, 544, 416)     @viewport.ox = 0   end   #--------------------------------------------------------------------------   # * hide_target_window   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_item_hide_target_window :hide_target_window   def hide_target_window     eds_pre_ff9_menu_scene_item_hide_target_window       @uses_window.visible = false unless @uses_window.nil?     @item_window.visible = true           end   #--------------------------------------------------------------------------   # * determine_target   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_item_determine_target :determine_target   def determine_target         eds_pre_ff9_menu_scene_item_determine_target     @uses_window.item = @item_window.item   end       #--------------------------------------------------------------------------   # * Termination Processing   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_item_terminate :terminate   def terminate     eds_pre_ff9_menu_scene_item_terminate     @uses_window.dispose   end end class Scene_Skill < Scene_Base   #--------------------------------------------------------------------------   # * start   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_skill_start :start   def start             eds_pre_ff9_menu_scene_skill_start     @target_window.y = 58               @uses_window = Window_SkillUses.new(true, @help_window.height, nil, nil)     @uses_window.visible = false   end     #--------------------------------------------------------------------------   # * OVERWRITTEN   #   - right-align flag ignored   #--------------------------------------------------------------------------   def show_target_window(right)     @uses_window.set_skill($game_party.members[@actor_index], @skill_window.skill)     @uses_window.visible = true     @status_window.visible = false     @skill_window.visible = false     @skill_window.active = false         @target_window.visible = true     @target_window.active = true       @viewport.rect.set(0, 0, 544, 416)     @viewport.ox = 0   end   #--------------------------------------------------------------------------   # * hide_target_window   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_skill_hide_target_window :hide_target_window   def hide_target_window     eds_pre_ff9_menu_scene_skill_hide_target_window       @uses_window.visible = false unless @uses_window.nil?     @skill_window.visible = true     @status_window.visible = true   end   #--------------------------------------------------------------------------   # * determine_target   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_skill_determine_target :determine_target   def determine_target         eds_pre_ff9_menu_scene_skill_determine_target     @uses_window.set_skill($game_party.members[@actor_index], @skill_window.skill)   end       #--------------------------------------------------------------------------   # * Termination Processing   #--------------------------------------------------------------------------   alias :eds_pre_ff9_menu_scene_item_terminate :terminate   def terminate     eds_pre_ff9_menu_scene_item_terminate     @uses_window.dispose   end end
×