¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3596 miembros registrados.
El último usuario registrado es Arboldecerezo.

Nuestros miembros han publicado un total de 81375 mensajes en 11495 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP] Dos pequeños soportes para Window_Command

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [RMXP] Dos pequeños soportes para Window_Command

Mensaje por Wecoc el 2014-04-03, 20:26

Me pidieron ésto por MP (bueno, solo el primero xD) y ya que lo tenía dije "Ale, voy a postearlo p'a la comu".

Son dos scripts muy chorras hechos en dos minutos o así del Window_Command, es decir las ventanas en las que seleccionas una opción de entre varias, como la de título, la del menú...

NO PIDO CRÉDITOS

El primer script (pegad encima de main) hace que si una de las opciones está vacía, es decir su texto vale "", entonces la salta directamente. Por si queréis poner separaciones entre comandos, en algunos juegos comerciales creo que las tienen (por eso me lo pidieron).

Código:
class Window_Base
  alias window_base_update update unless $@
end

class Window_Command < Window_Selectable
  def update
    window_base_update
    if self.active and @item_max > 0 and @index >= 0
      if Input.repeat?(Input::DOWN)
        if (Input.trigger?(Input::DOWN)) or @index < @item_max - 1
          $game_system.se_play($data_system.cursor_se)
          loop do
            if @index + 1 == @item_max
              @index = 0
            else
              @index = (@index + 1)
            end
            if @commands[@index] != ""
              break
            end
          end
        end
      end
      if Input.repeat?(Input::UP)
        if (Input.trigger?(Input::UP)) or @index >= 1
          $game_system.se_play($data_system.cursor_se)
          loop do
            if @index == 0
              @index = @item_max - 1
            else
              @index = (@index - 1)
            end
            if @commands[@index] != ""
              break
            end
          end
        end
      end
      if Input.repeat?(Input::R)
        if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
          $game_system.se_play($data_system.cursor_se)
          @index = [@index + self.page_item_max, @item_max - 1].min
          self.top_row += self.page_row_max
        end
      end
      if Input.repeat?(Input::L)
        if self.top_row > 0
          $game_system.se_play($data_system.cursor_se)
          @index = [@index - self.page_item_max, 0].max
          self.top_row -= self.page_row_max
        end
      end
    end
    if self.active and @help_window != nil
      update_help
    end
    update_cursor_rect
  end
end


El segundo script es casi igual pero en vez de hacerlo con las celdas vacías lo hace con las desactivadas, como el Cargar del título por ejemplo. Pegad también encima de main.

Código:
class Window_Base
  alias window_base_update update unless $@
end

class Window_Command < Window_Selectable
  alias disabled_initialize initialize unless $@
  def initialize(*args)
    disabled_initialize(*args)
    @disabled_items = []
  end
 
  def disable_item(index)
    draw_item(index, disabled_color)
    @disabled_items.push(index)
  end
 
  def enable_item(index)
    draw_item(index, normal_color)
    @disabled_items.delete(index)
  end
 
  def disabled?(index)
    return @disabled_items.include?(index)
  end
 
  def update
    window_base_update
    if self.active and @item_max > 0 and @index >= 0
      if Input.repeat?(Input::DOWN)
        if (Input.trigger?(Input::DOWN)) or @index < @item_max - 1
          $game_system.se_play($data_system.cursor_se)
          loop do
            if @index + 1 == @item_max
              @index = 0
            else
              @index = (@index + 1)
            end
            unless disabled?(@index)
              break
            end
          end
        end
      end
      if Input.repeat?(Input::UP)
        if (Input.trigger?(Input::UP)) or @index >= 1
          $game_system.se_play($data_system.cursor_se)
          loop do
            if @index == 0
              @index = @item_max - 1
            else
              @index = (@index - 1)
            end
            unless disabled?(@index)
              break
            end
          end
        end
      end
      if Input.repeat?(Input::R)
        if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
          $game_system.se_play($data_system.cursor_se)
          @index = [@index + self.page_item_max, @item_max - 1].min
          self.top_row += self.page_row_max
        end
      end
      if Input.repeat?(Input::L)
        if self.top_row > 0
          $game_system.se_play($data_system.cursor_se)
          @index = [@index - self.page_item_max, 0].max
          self.top_row -= self.page_row_max
        end
      end
    end
    if self.active and @help_window != nil
      update_help
    end
    update_cursor_rect
  end
end


Si necesitáis alguna cosa por el estilo o tenéis algún problema con ellos me lo decís e intentaré mirar a ver cómo hacerlo :D

Wecoc
Administrador
Administrador



Créditos 8720

Gracias : 401

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] Dos pequeños soportes para Window_Command

Mensaje por orochii el 2014-04-04, 02:04

Mientras tanto, en Soviet Orochiiland, cierto personajillo de seguro haría varias ventanas para el primer caso, porque es así de chapuza. =D!.
Y el segundo ta guay, pero supongo que estoy acostumbrado a oír el sonido de "error" así que nunca lo había pensado xD.

Tan buenos los add-ons.

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6073

Gracias : 271

http://ragnarokrproject.com/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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