Плохо! Плохо!:  0
Показано с 1 по 4 из 4

Тема: [MOG] Menu Status Aya

  1. #1
    Мастер Форума Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    8,400
    Записей в дневнике
    2
    Репутация: 91 Добавить или отнять репутацию

    По умолчанию [MOG] Menu Status Aya

    Menu Status
    Автор: Moghunter
    Версия: 2.0



    Описание
    Симпатичное улучшение внешнего вида окна статуса персонажа.

    Использование
    Можно скачать демо-версию, либо самостоятельно загрузить все изображения от сюда и поместить их в папку "Graphics/Menus" своего проекта.

    Демо-версия
    Ссылка.

    Скрипт
    Спойлер Код:
    Код:
    #==============================================================================
    # MOG VX - Menu Status Aya v2.0
    #==============================================================================
    # By Moghunter 
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Menu Status com layout em pictures.
    #==============================================================================
    # UTILIZAÇÃO
    #
    # 1 - Crie uma pasta com o nome de MENUS. (Graphics/Menus)
    # 2 - Nesta pasta devem conter as seguintes imagens.
    # 
    # Background.png
    # M_Status_Exp_Meter.png
    # M_Status_Parameter_Meter.png
    # M_Status_HPSP.png
    # M_Status_Layout.png
    # M_Status_OBJ.png
    #
    # 3 - Serão necessários as seguintes imagens na pasta SYSTEM. (Graphics/System)
    # 
    # Number_01.png
    # Number_01_B.png
    #
    #==============================================================================
    # Histórico
    # 1.1 Melhor codificação e novos efeitos.
    #==============================================================================
    module MOG_VX07
      #Definição do parameter maximo.
      MAX_PARAMETER = 999
    end
    #===============================================================================
    # ● Game_Actor
    #===============================================================================
    class Game_Actor < Game_Battler
      
      #--------------------------------------------------------------------------
      # ● now_exp
      #-------------------------------------------------------------------------- 
      def now_exp
          return @exp - @exp_list[@level]
      end
    
      #--------------------------------------------------------------------------
      # ● next_exp
      #-------------------------------------------------------------------------- 
      def next_exp
          return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
      end
    end
    
    #===============================================================================
    # Cache
    #===============================================================================
    
    module Cache
      #--------------------------------------------------------------------------
      # ● menu
      #--------------------------------------------------------------------------   
      def self.menu(filename)
        load_bitmap("Graphics/Menus/", filename)
      end
    end
    
    #===============================================================================
    # ● Window_Base
    #===============================================================================
    class Window_Base < Window  
      
      #--------------------------------------------------------------------------
      # ● draw_picture_number(x,y,value,file_name,align, space, frame_max ,frame_index)     
      #--------------------------------------------------------------------------
      # X - Posição na horizontal
      # Y - Posição na vertical
      # VALUE - Valor Numérico
      # FILE_NAME - Nome do arquivo
      # ALIGN - Centralizar 0 - Esquerda 1- Centro 2 - Direita  
      # SPACE - Espaço entre os números.
      # FRAME_MAX - Quantidade de quadros(Linhas) que a imagem vai ter. 
      # FRAME_INDEX - Definição do quadro a ser utilizado.
      #--------------------------------------------------------------------------  
      def draw_picture_number(x,y,value, file_name,align = 0, space = 0, frame_max = 1,frame_index = 0)     
        number_image = Cache.system(file_name) 
         frame_max = 1 if frame_max < 1
         frame_index = frame_max -1 if frame_index > frame_max -1
         align = 2 if align > 2
         cw = number_image.width / 10
         ch = number_image.height / frame_max
         h = ch * frame_index
         number = value.abs.to_s.split(//)
         case align
              when 0
                 plus_x = (-cw + space) * number.size 
              when 1
                 plus_x = (-cw + space) * number.size 
                 plus_x /= 2 
              when 2  
                 plus_x = 0
         end
         for r in 0..number.size - 1       
             number_abs = number[r].to_i 
             number_rect = Rect.new(cw * number_abs, h, cw, ch)
             self.contents.blt(plus_x + x + ((cw - space) * r), y , number_image, number_rect)        
          end      
          number_image.dispose 
      end  
        
      #--------------------------------------------------------------------------
      # ● draw_actor_parameter_meter
      #--------------------------------------------------------------------------   
       def draw_actor_parameter_meter(actor, x, y,type)
           image = Cache.menu("M_Status_Parameter_Meter")    
           cw = image.width  
           ch = image.height / 2
           src_rect = Rect.new(0, 0, cw, ch)    
           self.contents.blt(x , y, image, src_rect)
           case type 
                when 0
                  value = actor.atk
                when 1
                  value = actor.def
                when 2  
                  value = actor.spi
                when 3
                  value = actor.agi
           end        
           cw = image.width  * value / MOG_VX07::MAX_PARAMETER
           src_rect = Rect.new(0, ch, cw, ch)
           self.contents.blt(x , y , image, src_rect)
           draw_picture_number(x + image.width ,y - 22 ,value, "Number_01",0, 0,3,0)            
           image.dispose              
       end     
    
      #--------------------------------------------------------------------------
      # ● draw_item_name_menu_status
      #-------------------------------------------------------------------------- 
       def draw_item_name_menu_status(item, x, y, enabled = true)
           if item != nil
              draw_icon(item.icon_index, x, y, enabled)
              self.contents.font.color = normal_color
              self.contents.font.color.alpha = enabled ? 255 : 128
              self.contents.draw_text(x + 30, y, 155, WLH, item.name)
           end
       end
         
      #--------------------------------------------------------------------------
      # ● draw_equipments_menu_status
      #--------------------------------------------------------------------------    
       def draw_equipments_menu_status(actor, x, y)
           draw_item_name_menu_status(actor.equips[0], x , y)
           draw_item_name_menu_status(actor.equips[1], x , y + 45)
           draw_item_name_menu_status(actor.equips[2], x , y + 90)
           draw_item_name_menu_status(actor.equips[3], x + 125, y + 20)
           draw_item_name_menu_status(actor.equips[4], x + 125, y + 65)
       end
         
      #--------------------------------------------------------------------------
      # ● draw_actor_hp_menu_status
      #--------------------------------------------------------------------------    
      def draw_actor_hp_menu_status(actor, x, y)
          image = Cache.menu("M_Status_HPSP")    
          cw = image.width  * actor.hp / actor.maxhp
          ch = image.height / 2
          src_rect = Rect.new(0, 0, cw, ch)
          self.contents.blt(x , y - ch + 30, image, src_rect)
          draw_picture_number(x + 35 ,y + image.height, actor.hp, "Number_01_B",0, 10,3,1)         
          draw_picture_number(x + 95 ,y + image.height , actor.maxhp, "Number_01_B",0, 10,3,1)                   
          image.dispose
       end  
     
      #--------------------------------------------------------------------------
      # ● draw_actor_mp_menu_status
      #--------------------------------------------------------------------------    
      def draw_actor_mp_menu_status(actor, x, y)
          image = Cache.menu("M_Status_HPSP")    
          cw = image.width  * actor.mp / actor.maxmp
          ch = image.height / 2
          src_rect = Rect.new(0, ch, cw, ch)
          self.contents.blt(x , y - ch + 30, image, src_rect)
          draw_picture_number(x + 35 ,y + image.height, actor.mp, "Number_01_B",0, 10,3,2)         
          draw_picture_number(x + 95 ,y + image.height , actor.maxmp, "Number_01_B",0, 10,3,2)                   
          image.dispose
       end   
       
      #--------------------------------------------------------------------------
      # ● draw_menu_status_obj
      #-------------------------------------------------------------------------- 
       def draw_menu_status_obj(x,y)
           image = Cache.menu("M_Status_OBJ")
           cw = image.width 
           ch = image.height 
           src_rect = Rect.new(0, 0, cw, ch)
           self.contents.blt(x , y - ch, image, src_rect)
           image.dispose
       end 
         
      #--------------------------------------------------------------------------
      # ● draw_actor_exp_meter_status_menu
      #--------------------------------------------------------------------------    
        def draw_actor_exp_meter_status_menu(actor, x, y)  
           rate = actor.now_exp.to_f / actor.next_exp
           rate = 1 if actor.next_exp == 0
           image = Cache.menu("M_Status_Exp_Meter")    
           cw = image.width  
           ch = image.height / 2
           src_rect = Rect.new(0, 0, cw, ch)    
           self.contents.blt(x , y  , image, src_rect)
           cw = image.width * rate 
           cw = image.width if actor.level == 99
           src_rect = Rect.new(0, ch, cw, ch)
           self.contents.blt(x  , y , image, src_rect)       
           if actor.next_exp != 0
              self.contents.draw_text(x + 30, y - 20, 80, 32, actor.next_rest_exp_s, 2)    
           else
              self.contents.draw_text(x + 30, y - 20, 80, 32, "Max", 2)
           end
           self.contents.draw_text(x - 30, y + 10, 120, 32, actor.exp_s.to_s, 2)
           image.dispose
       end  
    end
    
    #===============================================================================
    # ● Window_Status_Left
    #===============================================================================
    class Window_Status_Left < Window_Base
      
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------   
      def initialize(actor)
        super(0, 0, 560, 430)
        @actor = actor
        self.opacity = 0
        self.contents.font.size = 16
        self.contents.font.bold = true
        self.contents.font.name = "Georgia"
        refresh
      end
    
      #--------------------------------------------------------------------------
      # ● refresh
      #-------------------------------------------------------------------------- 
      def refresh
        self.contents.clear
        self.contents.draw_text(350, 195, 90, 32, @actor.class.name, 1)    
        draw_actor_face(@actor, 350, 90)    
        draw_picture_number(500 ,195 , @actor.level, "Number_01",1, 0,3,0)         
        draw_actor_hp_menu_status(@actor, 350, 213)
        draw_actor_mp_menu_status(@actor, 380, 240)
        draw_actor_exp_meter_status_menu(@actor, 350, 300)
        draw_actor_parameter_meter(@actor, 50, 200,0)
        draw_actor_parameter_meter(@actor, 70, 230,1)
        draw_actor_parameter_meter(@actor, 90, 260,2)
        draw_actor_parameter_meter(@actor, 110, 290,3)
        draw_equipments_menu_status(@actor, 30, 40)
        draw_actor_state(@actor,190, 320)
      end
    end
    
    #===============================================================================
    # Window_Status_Right
    #===============================================================================
    class Window_Status_Right < Window_Base
      
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------   
      def initialize(actor)
        super(0, 0, 560, 430)
        @actor = actor
        self.opacity = 0
        self.contents.font.size = 16
        self.contents.font.bold = true
        self.contents.font.name = "Georgia"
        refresh
      end
      
      #--------------------------------------------------------------------------
      # ● refresh
      #-------------------------------------------------------------------------- 
      def refresh
        self.contents.clear
        draw_actor_name(@actor, 55, 367)
        draw_menu_status_obj(0, 380)
      end
    end
    
    #===============================================================================
    # Scene_Status
    #===============================================================================
    class Scene_Status  < Scene_Base
      
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------   
      def initialize(actor_index = 0)
          @actor_index = actor_index
      end
      
      #--------------------------------------------------------------------------
      # ● start
      #--------------------------------------------------------------------------   
      def start
          super
          @actor = $game_party.members[@actor_index]
          @status_window_right = Window_Status_Right.new(@actor)
          @status_window_right.x = 544
          @status_window_right.contents_opacity = 0
          @status_window_left = Window_Status_Left.new(@actor)
          @status_window_left.x = -544
          @status_window_left.contents_opacity = 0
          @menu_back = Plane.new    
          @menu_back.bitmap = Cache.menu("Background")
          @menu_layout = Sprite.new  
          @menu_layout.bitmap = Cache.menu("M_Status_Layout")  
      end
      
      #--------------------------------------------------------------------------
      # ● perform_transition
      #--------------------------------------------------------------------------   
      def perform_transition
          Graphics.transition(0)
      end  
      
      #--------------------------------------------------------------------------
      # ● pre_terminate
      #--------------------------------------------------------------------------   
      def pre_terminate
        super
           for i in 0..25
           @status_window_right.x += 25
           @status_window_left.x -= 25  
           @status_window_right.contents_opacity -= 15       
           @status_window_left.contents_opacity -= 15
           @menu_back.ox += 1       
           Graphics.update   
           end
      end 
         
      #--------------------------------------------------------------------------
      # ● terminate
      #--------------------------------------------------------------------------      
      def terminate
          super
          @status_window_right.dispose
          @status_window_left.dispose
          @menu_back.bitmap.dispose
          @menu_back.dispose
          @menu_layout.bitmap.dispose      
          @menu_layout.dispose
      end
      
      #--------------------------------------------------------------------------
      # ● return_scene
      #--------------------------------------------------------------------------   
      def return_scene
          $scene = Scene_Menu.new(3)
      end
    
      #--------------------------------------------------------------------------
      # ● next_actor
      #--------------------------------------------------------------------------   
      def next_actor
          @actor_index += 1
          @actor_index %= $game_party.members.size
          $scene = Scene_Status.new(@actor_index)
      end
      
      #--------------------------------------------------------------------------
      # ● prev_actor
      #--------------------------------------------------------------------------   
      def prev_actor
          @actor_index += $game_party.members.size - 1
          @actor_index %= $game_party.members.size
          $scene = Scene_Status.new(@actor_index)
      end
      
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------   
      def update
          @status_window_right.update
          update_slide
          update_command
          super
      end
      
      #--------------------------------------------------------------------------
      # ● update_slide
      #--------------------------------------------------------------------------       
      def update_slide
          @menu_back.ox += 1
          @status_window_right.contents_opacity += 10     
          @status_window_left.contents_opacity += 10    
          if @status_window_right.x  > 0 
             @status_window_right.x -= 25
          elsif @status_window_right.x  <= 0 
             @status_window_right.x = 0
             @status_window_right.contents_opacity = 255
          end
          if @status_window_left.x  < 0 
             @status_window_left.x += 25
          elsif @status_window_left.x  >=  
             @status_window_left.x = 0
             @status_window_left.contents_opacity = 255       
          end       
      end  
     
      #--------------------------------------------------------------------------
      # ● update_command
      #--------------------------------------------------------------------------     
      def update_command
          if Input.trigger?(Input::B)
             Sound.play_cancel
             return_scene
          elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT)
              Sound.play_cursor
              next_actor
          elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT)
             Sound.play_cursor
             prev_actor
          end    
      end    
    end
    
    $mog_rgssvx_scene_status = true


    Скриншоты
    Последний раз редактировалось Kolhe; 25.06.2013 в 18:34. Причина: Переоформил, востановил ссылку

  2. #2

    По умолчанию

    Сайт помер... И где взять эти картинки? На обменник надо было грузить, а то не демо не картинок

  3. #3
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,089
    Записей в дневнике
    6
    Репутация: 124 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от TDR Посмотреть сообщение
    Сайт помер... И где взять эти картинки? На обменник надо было грузить, а то не демо не картинок
    Сайт не помер... Сайт переехал...
    https://atelierrgss.wordpress.com/
    Плагинами для МВ пользуйтесь с большой аккуратностью.
    Они засирают систему и работают похоже только для РС-версии.

  4. #4

    По умолчанию

    Цитата Сообщение от peter8031983 Посмотреть сообщение
    Они засирают систему
    Спасибо за совет! Лучше не буду баловаться с нововведениями, из за событий и так карты много фпс берут. Погоду только сделаю, как же без погоды

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •