Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

MOG - Picture Gallery

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP MOG - Picture Gallery

Mensaje por AsFzKakarotto el 2018-04-16, 06:35

Muchos lo deben de conocer, es ya de mucho tiempo atrás por la famosa colección de MOG, pero por algún motivo
este sistema no lo está o no se podía obtener (En lo personal hubo un tiempo que lo busque mucho xd (cosillas de tiempo atrás)).
Bueno aquí lo encontraran muy fácil y puede que hasta los principiantes aun no lo conozcan.

por: Moghunter

Sistema de galería de imágenes



Instrucciones:

Para llamar el menú usar el llamado de script:

$scene = Scene_Picture_Gallery.new

Para habilitar una Imagen utilizar el llamado de script:

$game_system.gallery[ID] = true

Usted deberá crear una carpeta de nombre "Gallery" en su carpeta "Graphics" en donde
depositará toda la galería de imágenes que desea dar a modo de exposición al jugador.

Script [Parece que debe llamarse por obligación]
MOG - Picture Gallery:
Código:
#==============================================================================
# +++ MOG XP - Picture Gallery (v1.0) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Sistema de galeria de imagens.
#==============================================================================
# Para ativar o script use o comando abaixo através de um evento usando o
# comando chamar script. (Call Script)
#
# $scene = Scene_Picture_Gallery.new
#
#==============================================================================
# Para disponibilizar as imagens na galeria você deverá usar o seguinte
# código através do comando chamar script.
#
# $game_system.gallery[ID] = true
#
# EX   $game_system.gallery[10] = true
#
#==============================================================================
# Você deverá criar uma pasta com o nome "Gallery" onde as imagens deverão
# ser gravadas.
#
# Graphics/Gallery/
#
# A nomeação das imagens devem ser numéricas. (ID da imagem)
# 0.jpg    (Imagem não disponível.)
# 1.jpg
# 2.jpg
# 3.jpg
# ...
#
# Prefira usar imagens com resoluções igual ou maior a 640x480 pixels.
#
#==============================================================================
module MOG_PICTURE_GALLERY
       #Quantidade maxima de imagens na galeria.
       MAX_PICTURES = 40
end  
 
#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
  
 attr_accessor :gallery
 
 #------------------------------------------------------------------------------
 # ● Initialize
 #------------------------------------------------------------------------------  
 alias art_picture_initialize initialize
 def initialize
      art_picture_initialize
      @gallery = []
 end  
end

#==============================================================================
# ■ RPG
#==============================================================================
module RPG
  module Cache
    def self.gallery(filename)
        self.load_bitmap("Graphics/Gallery/", filename)
    end
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # Draw_Thumbnail
  #--------------------------------------------------------------------------  
  def draw_thumbnail(x,y,id)
      image = RPG::Cache.gallery(id.to_s) rescue nil
      return if image == nil
      cw = image.width
      ch = image.height
      src_rect = Rect.new(0, 0, cw , ch)
      src_rect2 = Rect.new(x, y, 150, 80)  
      self.contents.stretch_blt(src_rect2, image, src_rect)
  end
end  

#==============================================================================
# ■ Window_Picture
#==============================================================================
class Window_Picture < Window_Selectable
  
 #------------------------------------------------------------------------------
 # ● Initialize
 #------------------------------------------------------------------------------  
  def initialize(page)
      super(0, 64, 640, 365)
      self.opacity = 0
      @column_max = 3
      @page = page
      @pic_max = MOG_PICTURE_GALLERY::MAX_PICTURES
      @pic_max = 1 if @pic_max <= 0
      @pag_max = @pic_max / 9
      if @pag_max == page
         o = @pag_max * 9
         o2 =  @pic_max - o
         @item_max = o2
      else
         @item_max = 9
      end  
      refresh(page)
      self.index = 0
  end

 #------------------------------------------------------------------------------
 # ● Refresh
 #------------------------------------------------------------------------------  
  def refresh(page = 0)
      if self.contents != nil
         self.contents.dispose
         self.contents = nil
      end
      if @item_max > 0
         self.contents = Bitmap.new(width - 32, row_max * 110)
         for i in 0...@item_max
            draw_item(i,page)
         end
      end
  end
  
 #------------------------------------------------------------------------------
 # ● draw_item
 #------------------------------------------------------------------------------  
  def draw_item(index,page)
      np = 9 * page
      picture_number = index + 1 + np
      x = 15 + index % 3 * 215
      y = 12 + index / 3 *110
      s = picture_number
      s = 0 if $game_system.gallery[picture_number] == nil
      draw_thumbnail(x,y,s)
      self.contents.draw_text(x + 45,y + 70, 64, 32, "N - " + picture_number.to_s,1)
  end
  
 #------------------------------------------------------------------------------
 # ● update_cursor_rect
 #------------------------------------------------------------------------------  
  def update_cursor_rect
      if @index < 0
         self.cursor_rect.empty
         return
      end
      row = @index / @column_max
      if row < self.top_row
         self.top_row = row
      end
      if row > self.top_row + (self.page_row_max - 1)
         self.top_row = row - (self.page_row_max - 1)
      end
      cursor_width = self.width / @column_max - 32
      x = index % 3 * 215
      y = index / 3 *110
      self.cursor_rect.set(x, y, cursor_width, 105)
  end    
end

#==============================================================================
# ■ Scene_ArtPictures
#==============================================================================
class Scene_Picture_Gallery
 include MOG_PICTURE_GALLERY
  
 #------------------------------------------------------------------------------
 # ● Main
 #------------------------------------------------------------------------------    
 def main
     setup
     create_background
     create_window
     create_image
     create_cursor
     create_button
     execute_loop
     execute_dispose
 end

 #------------------------------------------------------------------------------
 # ● Setup
 #------------------------------------------------------------------------------      
 def setup
     @max_pictures = MAX_PICTURES
     @max_pictures = 1 if @max_pictures <= 0
     v = (@max_pictures / 9)
     v2 = (v - 1) * 9
     v3 = (@max_pictures - v2) - 9
     if v3 != 0
        @max_pages = (@max_pictures / 9) + 1
     else
        @max_pages = (@max_pictures / 9)
     end  
     @max_pages = 1 if @max_pages == 0
     @aw_center = 0
     @aw_left = 0
     @aw_right = 0
     @slide_type = 0
     @page_old = 0
     @picture_id = 0
     @image_active = false
     @old_index = 0
     @picures_enabled = 0
     @comp = 0
     @ex = 0
     @ey = 0
     @ex_max = 0
     @ey_max = 0
     @ex_max_zoom = 0
     @ey_max_zoom = 0
     for i in 0..MAX_PICTURES
         @picures_enabled += 1 if $game_system.gallery[i]
     end  
 end  
  
 #------------------------------------------------------------------------------
 # ● create_background
 #------------------------------------------------------------------------------        
 def create_background
     @background = Sprite.new
     @background.bitmap = RPG::Cache.gallery("Background")  
     @background.z = 0
     @background2 = Plane.new
     @background2.bitmap = RPG::Cache.gallery("Background2")      
     @background2.z = -1
 end
 
 #------------------------------------------------------------------------------
 # ● Create Window
 #------------------------------------------------------------------------------      
 def create_window
     @info = Window_Help.new
     @info.y = 416
     @info.opacity = 0
     @wp_page = 0
     @wp_page_old = @wp_page
     @wp_index = 0
     @wp =[]
     for i in 0...@max_pages
         @wp[i] = Window_Picture.new(i)
         @wp[i].x = 32 * i
     end  
     check_active_window(true)
     refresh_info_window(true)
 end
 
 #------------------------------------------------------------------------------
 # ● Create_image
 #------------------------------------------------------------------------------        
 def create_image
     @picture = Sprite.new
     @picture.bitmap = RPG::Cache.gallery("")
     @picture.z = 100
     @picture.opacity = 0
 end
 
 #------------------------------------------------------------------------------
 # ● Check Active Window
 #------------------------------------------------------------------------------      
 def check_active_window(starting = false)
     for i in 0...@max_pages
        if i == @wp_page
            @wp[@wp_page].active = true
            @wp[@wp_page].visible = true
            if @slide_type == 0  
               @wp[@wp_page].x = 640
            else
               @wp[@wp_page].x = -640
            end  
         elsif i == @page_old  and starting == false
            @wp[@page_old].active = false
            @wp[@page_old].visible = true
            @wp[@page_old].visible = false if starting
            @wp[@page_old].x = 0    
         else  
            @wp[i].active = false
            @wp[i].visible = false
         end  
     end  
 end
 
 #------------------------------------------------------------------------------
 # ● Create Button
 #------------------------------------------------------------------------------      
 def create_button
     @button_image = RPG::Cache.gallery("Button")
     @button_bitmap =  Bitmap.new(@button_image.width, @button_image.height)
     @cw = @button_image.width
     @ch = @button_image.height / 2
     src_rect = Rect.new(0, 0, @cw, @ch)
     @button_bitmap .blt(0,0, @button_image, src_rect)          
     @button = Sprite.new
     @button.bitmap = @button_bitmap
     @button.y = 443
     @button.z = 250
     @button.opacity = 0
     @button_fade_time = 0
 end
 
 #------------------------------------------------------------------------------
 # ● Create Cursor
 #------------------------------------------------------------------------------      
 def create_cursor
     @cx1 = 0
     @cx2 = 0
     @cursor_speed = 0
     image = RPG::Cache.gallery("Cursor")
     @bitmap = Bitmap.new(image.width, image.height)
     cw = image.width / 2
     ch = image.height
     src_rect = Rect.new(cw, 0, cw, ch)
     @bitmap.blt(0,0, image, src_rect)    
     @cursor1 = Sprite.new
     @cursor1.bitmap = @bitmap
     @cursor1.x = 0 + @cx1
     @cursor1.y = 220
     @cursor1.z = 200
     @bitmap2 = Bitmap.new(image.width, image.height)
     src_rect2 = Rect.new(0, 0, cw, ch)
     @bitmap2.blt(0,0, image, src_rect2)          
     @cursor2 = Sprite.new
     @cursor2.bitmap = @bitmap2
     @cursor2.x = 610 + @cx2
     @cursor2.y = 220
     @cursor2.z = 200
     image.dispose
     if @max_pages == 1
        @cursor1.visible = false
        @cursor2.visible = false
     end  
 end

 #------------------------------------------------------------------------------
 # ● Execute Loop
 #------------------------------------------------------------------------------    
 def execute_loop
     Graphics.transition
     loop do
          Graphics.update
          Input.update
          update
          if $scene != self
              break
          end
     end
 end
 
 #------------------------------------------------------------------------------
 # ● Execute Dispose
 #------------------------------------------------------------------------------      
 def execute_dispose
     Graphics.freeze
     for i in 0...@max_pages
         @wp[i].dispose
     end    
     @info.dispose
     if @picture.bitmap != nil
        @picture.bitmap.dispose
     end
     @picture.dispose
     @background.bitmap.dispose
     @background.dispose
     @background2.bitmap.dispose
     @background2.dispose    
     @bitmap.dispose
     @bitmap2.dispose
     @cursor1.bitmap.dispose
     @cursor1.dispose    
     @cursor2.bitmap.dispose
     @cursor2.dispose
     @button_bitmap.dispose
     @button.bitmap.dispose
     @button.dispose
     @button_image.dispose
 end
 
 #------------------------------------------------------------------------------
 # ● Update
 #------------------------------------------------------------------------------      
 def update
     @wp[@wp_page].update
     @info.update
     if @image_active  
        update_command_image
     else  
        update_command
     end  
     update_slide
     update_image_effect
     update_cursor_animation
     refresh_info_window
 end  
  
 #------------------------------------------------------------------------------
 # ● update_cursor_animation
 #------------------------------------------------------------------------------        
 def update_cursor_animation
     @cursor_speed += 1
     case @cursor_speed
        when 1..20
           @cx1 += 1
           @cx2 -= 1
        when 21..40
           @cx1 -= 1
           @cx2 += 1        
        else  
        @cursor_speed = 0
        @cx1 = 0
        @cx2 = 0
     end
     @cursor1.x = 0 + @cx1
     @cursor2.x = 610 + @cx2
 end
  
 #------------------------------------------------------------------------------
 # ● Update Image Effect
 #------------------------------------------------------------------------------      
 def update_image_effect
     return if @wp[@wp_page].x != 0
     @button_fade_time -= 1 if @button_fade_time > 0
     if @image_active
        @picture.opacity += 25
        if @button_fade_time != 0
           @button.opacity += 10
        else  
           if @button.y < 640  
              @button.opacity -= 15
              @button.y += 1
           end  
        end  
        @wp[@wp_page].contents_opacity -= 25
        @info.contents_opacity -= 25
        @background.opacity -= 25
        @cursor1.opacity -= 25
        @cursor2.opacity -= 25
     else  
        @picture.opacity -= 10
        @button.opacity -= 25
        @wp[@wp_page].contents_opacity += 25
        @info.contents_opacity += 25
        @background.opacity += 25
        @cursor1.opacity += 25
        @cursor2.opacity += 25        
     end  
 end

 #------------------------------------------------------------------------------
 # ● Refresh Info Window
 #------------------------------------------------------------------------------      
 def refresh_info_window(starting = false)
     return if @image_active
     return if @wp_page_old == @wp_page and starting == false  
     @wp_page_old = @wp_page
     page = @wp_page + 1
     @picture_id = (9 * @wp_page) + @wp[@wp_page].index  + 1
     p_pages = "Page - " + page.to_s + " / " + @max_pages.to_s
     comp  = "          Completed " + (@picures_enabled.to_f / @max_pictures.to_f * 100).truncate.to_s + "%"
     p_number = "          Pictures " + @picures_enabled.to_s + " / " + @max_pictures.to_s
     @info.set_text("            " + p_pages + comp + p_number)
 end    
 
 #------------------------------------------------------------------------------
 # ● Update Slide
 #------------------------------------------------------------------------------      
 def update_slide
     @background2.ox += 1
     return if @wp[@wp_page].x == 0  
     slide_speed = 35
     @picture.opacity = 0
     @background.opacity = 255
     if @slide_type == 1    
        if @wp[@wp_page].x < 0
           @wp[@wp_page].x += slide_speed
           if @wp[@wp_page].x >= 0
              @wp[@wp_page].x = 0
           end
         end
        if @wp[@page_old].x < 640
           @wp[@page_old].x += slide_speed
           if @wp[@page_old].x >= 640
              @wp[@page_old].x = 640
           end
         end        
       else    
         if @wp[@wp_page].x > 0
            @wp[@wp_page].x -= slide_speed
            if @wp[@wp_page].x <= 0  
               @wp[@wp_page].x = 0
            end  
         end
         if @wp[@page_old].x > -640
            @wp[@page_old].x -= slide_speed
            if @wp[@page_old].x <= -640
               @wp[@page_old].x = -640
            end
         end          
       end
       if @slide_type == 0    
          @wp[@wp_page].x = 0 if @wp[@wp_page].x <= 0  
       else
           @wp[@wp_page].x = 0 if @wp[@wp_page].x >= 0
       end  
 end
 
 #------------------------------------------------------------------------------
 # ● Check_limite
 #------------------------------------------------------------------------------        
 def check_limit
     if @wp_page < 0
        @wp_page = @max_pages - 1
     elsif @wp_page >= @max_pages  
        @wp_page = 0  
     end
     check_active_window
 end  
 
 #------------------------------------------------------------------------------
 # ● Update Command Image
 #------------------------------------------------------------------------------        
 def update_command_image
     if Input.trigger?(Input::B) or Input.trigger?(Input::C)
        $game_system.se_play($data_system.cursor_se)
        @image_active = false
        @wp[@wp_page].active = true
        return
     end  
     if Input.trigger?(Input::R) or Input.trigger?(Input::L)
        $game_system.se_play($data_system.cursor_se)
        execute_zoom      
     end  
     if Input.press?(Input::RIGHT)
        @ex += 6
     elsif Input.press?(Input::LEFT)
        @ex -= 6
     elsif Input.press?(Input::DOWN)
        @ey += 6
     elsif Input.press?(Input::UP)  
        @ey -= 6
     end  
     @ex = @ex_max + @ex_max_zoom if @ex > @ex_max + @ex_max_zoom
     @ex = 0 if @ex < 0
     @ey = @ey_max + @ey_max_zoom if @ey > @ey_max + @ey_max_zoom
     @ey = 0 if @ey < 0        
     @picture.x = -@ex
     @picture.y = -@ey
 end  
 
 #------------------------------------------------------------------------------
 # ● Execute Zoom
 #------------------------------------------------------------------------------        
 def execute_zoom
     if @picture.zoom_x == 1.0
        @picture.zoom_x = 1.5
        @picture.zoom_y = 1.5
        refresh_button(1)
        @ex_max_zoom = (@picture.bitmap.width / 2)
        if @ex != @ex_max
           @ex += @ex_max_zoom / 2          
        else  
           if @ex_max != 0  
              @ex += @ex_max_zoom
           else  
              @ex += @ex_max_zoom / 2
           end  
        end  
        @ey_max_zoom = (@picture.bitmap.height / 2)
        if @ey != @ey_max
           @ey += @ey_max_zoom / 2          
        else  
           if @ey_max != 0  
              @ey += @ey_max_zoom
           else  
              @ey += @ey_max_zoom / 2
           end  
         end  
      else
        if @picture.bitmap.width > 640 or
           @picture.bitmap.height > 480
           refresh_button(1)
        else
           refresh_button(0)
        end          
        @ex -= @ex_max_zoom / 2
        @ey -= @ey_max_zoom / 2          
        @picture.zoom_x = 1.0
        @picture.zoom_y = 1.0    
        @ex_max_zoom = 0
        @ey_max_zoom = 0
     end    
 end  
 
 #------------------------------------------------------------------------------
 # ● check_avaliable_picture?
 #------------------------------------------------------------------------------        
 def check_avaliable_picture?
     @picture_id = (9 * @wp_page) + @wp[@wp_page].index  + 1
     return false if $game_system.gallery[@picture_id] == nil
     return true
 end  
 
 #------------------------------------------------------------------------------
 # ● create_bitmap
 #------------------------------------------------------------------------------        
 def create_bitmap
     @picture.opacity = 0
     @picture.bitmap.dispose
     @picture.bitmap = RPG::Cache.gallery(@picture_id.to_s) rescue nil
     @ex = 0
     @ey = 0
     @ex_max_zoom = 0
     @ey_max_zoom = 0
     @picture.zoom_x = 1.0
     @picture.zoom_y = 1.0      
     if @picture.bitmap == nil
        @picture.bitmap = RPG::Cache.gallery("")
        refresh_button(0)
        return
     end  
     if @picture.bitmap.width > 640
        @ex_max = @picture.bitmap.width - 640
     else
        @ex_max = 0
     end
     if @picture.bitmap.height > 480
        @ey_max = @picture.bitmap.height - 480  
     else
        @ey_max = 0
     end  
     if @picture.bitmap.width > 640 or
        @picture.bitmap.height > 480
        refresh_button(1)
     else
        refresh_button(0)
     end
 end  
 
 #------------------------------------------------------------------------------
 # ● Refresh Button
 #------------------------------------------------------------------------------        
 def refresh_button(type = 0)
     @button.bitmap.clear
     if type == 0
        src_rect = Rect.new(0, 0, @cw, @ch)
     else
        src_rect = Rect.new(0, @ch, @cw, @ch)
     end  
     @button_bitmap .blt(0,0, @button_image, src_rect)  
     @button.y = 443
     @button_fade_time = 120
     @button.opacity = 0 unless @button.y == 443
 end  
 
 #------------------------------------------------------------------------------
 # ● Update Command
 #------------------------------------------------------------------------------      
 def update_command
     return if @wp[@wp_page].x != 0
     if Input.trigger?(Input::B)
        $game_system.se_play($data_system.cursor_se)
        $scene = Scene_Map.new
        return
     end
     if Input.trigger?(Input::C)
        if check_avaliable_picture?
           $game_system.se_play($data_system.decision_se)
           @image_active = true
           @wp[@wp_page].active = false
           create_bitmap
        else
          $game_system.se_play($data_system.buzzer_se)
        end
        return
     end  
     if Input.trigger?(Input::L) and @max_pages != 1
        $game_system.se_play($data_system.cursor_se)
        @page_old = @wp_page
        @wp_page -= 1
        @slide_type = 1
        check_limit
        return
     elsif Input.trigger?(Input::R) and @max_pages != 1  
        $game_system.se_play($data_system.cursor_se)
        @page_old = @wp_page
        @wp_page += 1
        @slide_type = 0
        check_limit
        return
     end  
 end  
end  

$mog_xp_picture_gallery = true

Demostración
http://share.cherrytree.at/showfile-31144/xp_gallery.rar
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 314

Gracias : 68

Volver arriba Ir abajo

RPG Maker XP ¡¡Gracias!!

Mensaje por enmanuel el 2018-05-12, 14:57

Tenia tiempo buscando algo como esto y no lo encontraba, ahora mi proyecto personal esta cada vez mas cerca de terminar, gracias por el aporte buen hombre. notworthy
avatar
enmanuel
Iniciado
Iniciado

0/3

Créditos 5

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MOG - Picture Gallery

Mensaje por Miky Joe el 2018-05-12, 19:13

Ese script yo tambien lo he usado, aunque ya prefiero hacerlo por engine, ya que todo mundo lo conoce, y ya cuándo usas algo de mog, aunque cambies los gráficos, ya sales "quemado" ya que la matoría lo conoce... así es el escene, en algunas partes.

Ahora, este script, por lo general, como yo lo hice, lo utilice en un juego de Horror/Suspenso, creo que el engine viene mejor... mas personalizado, obviamente más trabajo que "copiar y pegar encima de main", sin embargo, solo es una opinión muy muy pero muy personal.

Saludos.
avatar
Miky Joe
Veterano
Veterano

0/3

Créditos 1992

Gracias : 78

Volver arriba Ir abajo

RPG Maker XP Re: MOG - Picture Gallery

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.