Maker Palace
Si quiere un completo acceso al contenido del foro. Registrate

Maker Palace

¡El Reino del RpgMaker y del Ocio!
 
ÍndiceBuscarGrupos de UsuariosScriptsRecursosTutorialesJuegos creados por los PalacersPalaceWikiFAQRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Temas similares
  • » Tutorial Custom Menu
  • » Crashbit v8 "Dash" para 5800 + Navibar + Menu 4x4 + Skin S^3 Hacked
  • » Algo raro en mi plato (Lune Holmes)
  • » Una copa de vino y algo de Charles Baudelaire... [Claire]
  • » Comprando café....y algo más!!!!((Privado))
  • » Canción de olvido para una bruja. (One-shot...algo así)
  • » Algo diferente [libre]
  • » Algo curioso.
  • » En busca de algo interesante.
  • » Paris debería tener mar, o playa, o algo más limpio que el Sena [Libre]
  • Buscar
     
     

    Resultados por:
     
    Rechercher Búsqueda avanzada
    Últimos temas
    » [AYUDA] tengo un problema con mi script
    por Shooter Ayer a las 5:21 am

    » Buenas fuentes para aprender Ruby
    por SagahonArturo Jue Mayo 23, 2013 7:00 pm

    » Los trailers mas memorables
    por Shooter Jue Mayo 23, 2013 3:32 pm

    » Capcom cancela evento de Resident Evil: Revelations HD
    por Shooter Jue Mayo 23, 2013 2:19 pm

    » nueva beta de dross el rompe muelas
    por Poiron15 Jue Mayo 23, 2013 1:44 pm

    » Infinity - Terrains
    por Shooter Mar Mayo 21, 2013 3:08 pm

    » Zekirom : La Leyenda !Descargalo completo ya¡(RMXP)
    por Mur-mai-der Mar Mayo 21, 2013 2:40 pm

    Recomendados
    RPG en RPG Maker
    La importancia de un Backup
    Que requiere un sistema de Batalla para ser exitoso
    9 Minutos de Juegos por fans
    Neoland
    Indice de Scripts Locales XP
    Falcao Pearl ABS Liquid
    ¿Quién está en línea?
    En total hay 31 usuarios en línea: 2 Registrados, 0 Ocultos y 29 Invitados :: 2 Motores de búsqueda

    Akito_squall, Shooter

    La mayor cantidad de usuarios en línea fue 179 el Mar Ago 30, 2011 1:06 pm.
    MiniChat
    Mejores posteadores
    Shooter (2937)
     
    DaviX (2724)
     
    Frikilangelo (2429)
     
    Falcao (1768)
     
    kyonides-arkanthos (1443)
     
    SagahonArturo (1440)
     
    555goku5551 (1434)
     
    Webmaster24 (1353)
     
    Ares (1336)
     
    xDarkLinkx (1309)
     
    Afiliados
    Crear foro Mundo Maker Foro de anime y RM2k3/XP/VX Computer mix
    Flag Counter
    free counters
    Visitas

    Compartir | .
     

     KAMenu - un menú algo distinto?

    Ver el tema anterior Ver el tema siguiente Ir abajo 
    AutorMensaje
    kyonides-arkanthos
    SuperLord Maker
    SuperLord Maker


    Cantidad de envíos: 1443
    Miembro desde: 02/02/2010
    Sexo: Masculino

    Maker: RMXP


    MensajeTema: KAMenu - un menú algo distinto?   Sáb Sep 25, 2010 6:42 pm

    KAMenu
    por Kyonides-Arkanthos



    Este script pretende que Uds. no se aburran con el mismo tipo de menú de siempre en el Maker XP.

    Screenshots
    Con 4 héroes a la vez:
     

    Con 2 héroes a la vez:
     


    Si les sirvió, no duden en probar mis scripts más complejos.

    Script
    Código:
    #  KAMenu
    #  by Kyonides-Arkanthos
    #  v 1.0.0 RC - 2010.09.26

    module SpriteMethods
      def dispose; self.bitmap.dispose if !self.bitmap.nil?; super end

      def x_y(new_x, new_y) self.x, self.y = new_x, new_y end
    end

    module RPG::Cache
      def self.face(filename) load_bitmap('Graphics/Faces/', filename) end
    end

    module Temp
      @indexes = [-1, -1]
      def self.last_indexes(*values) @indexes = values end

      def self.reset_indexes; @indexes = [-1, -1] end

      def self.last_actor;    @indexes[0] end

      def self.last_option;  @indexes[1] end
    end

    class Sprite; include SpriteMethods end

    class Sprite_ShowHelp < Sprite
      OPTIONS = [
        'Unpack some items',
        'Check your current status',
        'Skills you have learned so far',
        'Equip some new weapon or armor',
        'Get some rest now',
        "Make sure you won't lose anything important",
        'When in doubt chicken out'
      ]
      def initialize(index, align, width=640, x=8, y=0)
        super()
        self.bitmap, self.visible = Bitmap.new(@width = width, 28), true
        @index, @align = index, align
        x_y(x, y)
        draw_text(@index)
      end

      def draw_text(index)
        @index = index
        self.bitmap.clear
        self.bitmap.font.size = @width == 640 ? 22 : 19
        self.bitmap.draw_text(self.x, 0, @width - 40, 32, OPTIONS[@index], @align)
      end
    end

    class GoldInfo
      def initialize
        @background = Sprite.new(Viewport.new(452, 4, 180, 30))
        @background.bitmap = RPG::Cache.picture 'info'
        @icon = Sprite.new(Viewport.new(600, 4, 48, 32))
        @icon.bitmap = RPG::Cache.picture 'bills'
        @gold = Sprite.new(Viewport.new(452, 6, 144, 24))
        @gold.bitmap = Bitmap.new 144, 24
        @gold.bitmap.draw_text(0, 0, 144, 24, $game_party.gold.to_s, 2)
      end

      def dispose
        @gold.dispose
        @icon.dispose
        @background.dispose
      end
    end

    class StatsLabels
      def initialize(level, hp, sp, index, active)
        @labels, x = [], 160 * index
        @labels << Sprite.new(Viewport.new(x + 10, 188, 60, 20))
        @labels << Sprite.new(Viewport.new(x + 10, 212, 60, 20))
        @labels << Sprite.new(Viewport.new(x + 10, 236, 60, 20))
        @labels << Sprite.new(Viewport.new(x, 188, 148, 24))
        @labels << Sprite.new(Viewport.new(x, 212, 148, 24))
        @labels << Sprite.new(Viewport.new(x, 236, 148, 24))
        @labels[0].bitmap = RPG::Cache.picture 'stats level'
        @labels[1].bitmap = RPG::Cache.picture 'stats hp'
        @labels[2].bitmap = RPG::Cache.picture 'stats sp'
        @labels[3].bitmap = Bitmap.new 148, 28
        @labels[4].bitmap = Bitmap.new 148, 28
        @labels[5].bitmap = Bitmap.new 148, 28
        @labels[3].bitmap.draw_text(0, 0, 148, 24, level.to_s, 2)
        @labels[4].bitmap.draw_text(0, 0, 148, 24, hp.to_s, 2)
        @labels[5].bitmap.draw_text(0, 0, 148, 24, sp.to_s, 2)
        opacity = active ? 255 : 160
        @labels.each {|label| label.opacity = opacity}
      end

      def opacity=(value) @labels.each {|s| s.opacity = value} end

      def dispose; @labels.each {|s| s.dispose}; @labels.clear end
    end

    class Backgrounds
      BGS = ['skyblue1', 'skyblue0', 'darkwp', 'darkbg', 'darkwaves']
      def initialize(size)
        @sprites = []
        size.times {|n| @sprites << Sprite.new(Viewport.new(160 * n, 0, 160, 480))
          @sprites[n].bitmap = RPG::Cache.title BGS[n]}
        return if size == 4
        x_width = 160 * (4 - size)
        @sprites << Sprite.new(Viewport.new(640 - x_width, 0, x_width, 480))
        @sprites[-1].bitmap = RPG::Cache.title BGS[4]
      end

      def dispose; @sprites.each {|s| s.dispose} end
    end

    class Scene_Menu
      def main
        start
        Graphics.transition
        loop do
          Graphics.update
          Input.update
          update
          break if $scene != self
        end
        Graphics.freeze
        terminate
      end

      def start
        @menu_index  = Temp.last_option < 0 ? 0 : Temp.last_option
        @actor_index = Temp.last_actor < 0 ? 0 : Temp.last_actor
        @actors = $game_party.actors
        @scenebg = Backgrounds.new(@actors.size)
        @goldinfo = GoldInfo.new
        @menubg = Sprite.new(Viewport.new(0, 272, 640, 140))
        @menubg.bitmap = RPG::Cache.picture 'column'
        @menubg.x = 160 * @actor_index
        options = ['items', 'status', 'skills', 'equip', 'camp', 'save', 'exit']
        @options, @herobgs, @jobs, @names, @faces, @labels = [], [], [], [], [], []
        options.size.times do |n|
          @options << Sprite.new(Viewport.new(4, 252+((n+1)*20), 632, 20))
          @options[n].bitmap = RPG::Cache.picture 'option '+ options[n]
          @options[n].x = (160 * @actor_index) + 4
          @options[n].opacity = 160 if n != @menu_index
        end
        @help = Sprite_ShowHelp.new(@menu_index, 0, 360)
        make_actors_sprites
      end

      def make_actors_sprites
        @actors.size.times do |n|
          @herobgs << Sprite.new(Viewport.new((160 * n) + 4, 36, 152, 268))
          @herobgs[n].bitmap = RPG::Cache.picture 'herobg'
          @jobs << Sprite.new(Viewport.new((160 * n) + 12, 32, 140, 28))
          @jobs[n].bitmap = Bitmap.new 136, 28
          @jobs[n].bitmap.draw_text(0, 0, 136, 28, @actors[n].class_name, 1)
          @names << Sprite.new(Viewport.new((160 * n) + 12, 160, 140, 28))
          @names[n].bitmap = Bitmap.new 136, 28
          @names[n].bitmap.draw_text(0, 0, 136, 28, @actors[n].name, 1)
          @faces << Sprite.new(Viewport.new((160 * n) + 30, 60, 100, 100))
          @faces[n].bitmap = RPG::Cache.face @actors[n].character_name
          lvl, hp, sp = @actors[n].level, @actors[n].hp, @actors[n].sp
          @labels << StatsLabels.new(lvl, hp, sp, n, n == @actor_index)
          opa = n == @actor_index ? 255 : 160
          @jobs[n].opacity = @names[n].opacity = @faces[n].opacity = opa
        end
      end

      def terminate
        (@herobgs+@options+@jobs+@names+@faces+@labels).each {|s| s.dispose}
        @menubg.dispose
        @help.dispose
        @goldinfo.dispose
        @scenebg.dispose
      end

      def update
        if Input.trigger?(Input::B)
          $game_system.se_play($data_system.cancel_se)
          Temp.reset_indexes
          $scene = Scene_Map.new
        elsif Input.trigger?(Input::C)
          update_menu_options
        elsif Input.trigger?(Input::LEFT)
          @actor_index = @actor_index > 0 ? @actor_index - 1 : @actors.size - 1
          update_images_opacity
        elsif Input.trigger?(Input::RIGHT)
          @actor_index = @actor_index < @actors.size - 1 ? @actor_index + 1 : 0
          update_images_opacity
        elsif Input.trigger?(Input::UP)
          i = @menu_index = @menu_index > 0 ? @menu_index - 1 : @options.size - 1
          @help.draw_text(@menu_index)
          @options.size.times {|n| @options[n].opacity = n != i ? 160 : 255}
        elsif Input.trigger?(Input::DOWN)
          i = @menu_index = @menu_index < @options.size - 1 ? @menu_index + 1 : 0
          @help.draw_text(@menu_index)
          @options.size.times {|n| @options[n].opacity = n != i ? 160 : 255}
        elsif Input.dir4
          $game_system.se_play($data_system.cursor_se)
          Temp.last_indexes @actor_index, @menu_index
        end
      end

      def update_menu_options
        if @menu_index == 5 and $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          Temp.reset_indexes
        else
          $game_system.se_play($data_system.decision_se)
          Temp.reset_indexes if @menu_index == 4
        end
        $scene = case @menu_index
        when 0; Scene_Item.new
        when 1; Scene_Status.new(@actor_index)
        when 2; Scene_Skill.new(@actor_index)
        when 3; Scene_Equip.new(@actor_index)
        when 4; Scene_Map.new # Camp?
        when 5; Scene_Save.new
        when 6; Scene_End.new
        end
      end

      def update_images_opacity
        @menubg.x = 160 * @actor_index
        @options.each {|sprite| sprite.x = (160 * @actor_index) + 4}
        @actors.size.times do |n|
          opa = n == @actor_index ? 255 : 160
          @faces[n].opacity = @names[n].opacity = @jobs[n].opacity = opa
          @labels[n].opacity = opa
        end
      end
    end


    Nota

    Las imágenes que utilicé como fondos de pantalla en el script no me pertenecen por lo que no las distribuiré, solo sirvieron para darles una idea de cómo luciría este script en funcionamiento.
    Volver arriba Ir abajo
    Ver perfil de usuario
     

    KAMenu - un menú algo distinto?

    Ver el tema anterior Ver el tema siguiente Volver arriba 
    Página 1 de 1.

     Temas similares

    -
    » [VX] PHLiM2's Menu Mod
    » Intentando aprender algo de pedales
    » Algo super LOCO. (Se me acaba de ocurrir).
    » El comienzo de algo. [Noctis, Adrian, Miroslav, Samael & Mikael]
    » Detrás de toda hermosura hay algo trágico [Relaciones de Gaël]

    Permisos de este foro:No puedes responder a temas en este foro.
    Maker Palace :: RGSS Scripts :: Scripts Maker XP-