Últimos temas
» Muestrario de Screens
por JapoZero Hoy a las 3:22 am

» The Timeless House - Terror - ¡Descarga ya disponible!
por rstudios Dom Mayo 31, 2020 11:03 pm

» [RPG2k] - Problemas con Recursos propios
por KRiZaLiD Dom Mayo 31, 2020 6:59 pm

» [Solucionado] Script IAVRA_GIF (MV)
por kaospropio Sáb Mayo 30, 2020 10:25 pm

» Pokemon Destiny
por JapoZero Sáb Mayo 30, 2020 2:32 am

» Temporalmente desconectado.
por Muzgar Jue Mayo 28, 2020 9:35 pm

» [Solucionado]Quitar PV y PM al mismo tiempo (RPG MV)
por JapoZero Miér Mayo 27, 2020 8:32 pm

» Error al exportar proyecto
por Tonitron Miér Mayo 27, 2020 12:14 pm

» LA BRÚJULA DE ZAZA [VXACE]
por Pocari Dom Mayo 24, 2020 10:39 pm

» Videotutorial Linternas RPg maker 2003,
por Muzgar Vie Mayo 22, 2020 2:20 pm

» Cambiar de mapa segun interruptor
por Muzgar Vie Mayo 22, 2020 1:24 pm

» Habilidades pasivas que aumentan atributos [Vx Ace]
por juantru Jue Mayo 21, 2020 4:58 pm


Script Keypad Input

Ir abajo

Script Keypad Input Empty Script Keypad Input

Mensaje por Axel el Lun Jun 16, 2014 9:34 am

Hola de nuevo aquí trayendoles otro Script que espero sea el agrado de muchos y les sea de mucha utilidad

Nombre del Script: Keypad Input
Autor: Galv´s

¿Que Hace?
Lo que hace es poner una contraseña numérica mucho mas bonita de lo que viene por defecto en el maker dandole una apariencia como si fuera un panel electrónico como esos juegos de acción que al final tienes que introducir un código en un panel muy al estilo RE o DC(Resident Evil o Dino Crisis)

Uso: Copiar y Pegar encima de Main y llamar al script keypad_input para su correcta función 

Screens:
Script Keypad Input Vpase9


Spoiler:


#------------------------------------------------------------------------------#

#  Galv's Keypad Input

#------------------------------------------------------------------------------#

#  For: RPGMAKER VX ACE

#  Version 1.1

#------------------------------------------------------------------------------#

#  2012-10-15 - Version 1.1 - Allows for a larger max number to show in the box

#  2012-10-05 - Version 1.0 - release

#------------------------------------------------------------------------------#

#  The keypad is just a fancy version of the 'Number Input' event command.

#  When "OK" is pressed, it outputs the entered number to the chosen variable.

#  When "X" is pressed, it outputs -1 to the chosen variable (for eventing).

#

#  From then on, it's up to your eventing skills what to do with the number.

#  Call the keypad with the script call:

#------------------------------------------------------------------------------#

#  keypad_input

#------------------------------------------------------------------------------#



$imported = {} if $imported.nil?

$imported["Keypad"] = true



module Keypad



#------------------------------------------------------------------------------#

#  SCRIPT SETUP OPTIONS

#------------------------------------------------------------------------------#



  KEYPAD_VAR = 1              # Variable that the keypad stores number in.

  MAX_NUM = 6                 # Amount of numbers you can enter in the keypad.

  

  OK_SE = ["Heal7", 80, 150]  # OK sound effect. ["SE Name", volume, pitch]

  

#------------------------------------------------------------------------------#

#  SCRIPT SETUP OPTIONS

#------------------------------------------------------------------------------#



end



class Scene_Keypad < Scene_MenuBase



  def start

    super

    @number = ""

    @edit_window = Window_Numpad.new(@number, @max_char)

    @input_window = Window_NumInput.new(@edit_window)

    @input_window.set_handler(:confirm, method(:on_input_ok))

    @input_window.set_handler(:leave, method(:on_input_x))

    @input_window.activate

  end

  def on_input_ok

    $game_variables[Keypad::KEYPAD_VAR] = @edit_window.numeral.to_i

    SceneManager.return

  end

  def on_input_x

    $game_variables[Keypad::KEYPAD_VAR] = -1

    SceneManager.return

  end



end



#--------------------------------------------------------------------------

#--------------------------------------------------------------------------

# * New Window - Numpad Number Output

#--------------------------------------------------------------------------

#--------------------------------------------------------------------------



class Window_Numpad < Window_Base



  attr_reader   :numeral                  # number amount

  attr_reader   :index                    # cursor position

  attr_reader   :max_char                 # maximum number of numbers



  def initialize(number, max_char)

    x = ((Graphics.width - 185) / 2) - (extend_size * 0.5)

    y = (Graphics.height - (fitting_height(4) + fitting_height(9) + Cool) / 2

    super(x, y, 185 + extend_size, fitting_height(1))

    @max_char = Keypad::MAX_NUM

    @numeral = number.to_s[0, @max_char]

    @index = @numeral.size

    refresh

  end

  

  def extend_size

    if Keypad::MAX_NUM > 10

      20 * (Keypad::MAX_NUM - 10)

    else

      0

    end

  end



  def add(ch)

    return false if @index >= @max_char

    @numeral += ch

    @index += 1

    refresh

    return true

  end



  def back

    return on_name_x if @index == 0

    @index -= 1

    @numeral = @numeral[0, @index]

    refresh

    return true

  end

  

  def on_name_x

    $game_variables[Keypad::KEYPAD_VAR] = -1

    SceneManager.return

  end 



  def char_width

    text_size("0").width + 5

  end



  def left

    numeral_center = (contents_width) / 2

    numeral_width = (@max_char) * char_width

    return [numeral_center - numeral_width / 2, contents_width - numeral_width].min

  end



  def item_rect(index)

    Rect.new(left + index * char_width, -3, char_width, line_height)

  end



  def draw_char(index)

    contents.font.size = 28

    rect = item_rect(index)

    rect.x -= 1

    rect.width += 4

    change_color(normal_color)

    draw_text(rect, @numeral[index] || "")

  end



  def refresh

    contents.clear

    @numeral.size.times {|i| draw_char(i) }

  end

  

  

end



#--------------------------------------------------------------------------

#--------------------------------------------------------------------------

# * New Window - Numpad Input

#--------------------------------------------------------------------------

#--------------------------------------------------------------------------



class Window_NumInput < Window_Selectable



  NUMPAD = [ '1','2','3','4','5', '6','7','8','9','OK', '0', 'X']



  def initialize(edit_window)

    super((Graphics.width - 185) / 2, edit_window.y + edit_window.height + 8,

          185, fitting_height(9))

    @edit_window = edit_window

    @index = 0

    refresh

    update_cursor

  end



  def character

    if @index == 10

      NUMPAD[@index]

    elsif @index < 9 

      NUMPAD[@index]

    else

      ""

    end

  end



  def is_x?

    @index == 11

  end



  def is_ok?

    @index == 9

  end



  def item_rect(index)

    contents.font.size = 32

    rect = Rect.new

    rect.x = index % 3 * 32 + index % 3 / 1 * 16

    rect.y = index / 3 * line_height * 2

    rect.width = 62

    rect.height = 62

    rect

  end



  def refresh

    contents.clear

    change_color(normal_color)

    12.times {|i| draw_text(item_rect(i), NUMPAD[i], 1) }

  end



  def update_cursor

    cursor_rect.set(item_rect(@index))

  end



  def cursor_movable?

    active

  end



  def cursor_down(wrap)

    if @index < 9 or wrap

      @index = (index + 3) % 12

    end

  end



  def cursor_up(wrap)

    if @index > 2 or wrap

      @index = (index - 3) % 12

    end

  end

  

  def cursor_right(wrap)

    if @index % 12 < 11

      @index += 1

    elsif wrap

      @index -= 11

    end

  end



  def cursor_left(wrap)

    if @index % 12 > 0

      @index -= 1

    elsif wrap

      @index += 11

    end

  end



  def process_cursor_move

    super

    update_cursor

  end



  def process_handling

    return unless open? && active

    process_back if Input.repeat?(:B)

    process_ok   if Input.trigger?(:C)

  end



  def process_back

    Sound.play_cancel if @edit_window.back

  end



  def process_ok

    if !character.empty?

      on_name_add

    elsif is_x?

      Sound.play_cancel

      call_handler(:leave)

    elsif is_ok?

      RPG::SE.new(Keypad::OK_SE[0], Keypad::OK_SE[1], Keypad::OK_SE[2]).play

      call_handler(:confirm)

    end

  end



  def on_name_add

    if @edit_window.add(character)

      Sound.play_ok

    else

      Sound.play_buzzer

    end

  end



end



class Game_Interpreter

  def keypad_input

    SceneManager.call(Scene_Keypad)

    wait(1)

  end

end




NOTAS: Para que funcione bien tienen que crear en el evento efectos y condiciones en la variable menor que y constante 0 despues vuelven a crear otro de efectos y condiciones y ahora en la variable le ponen igual a y constante(el numero de la contraseña que desean poner)y listo ya pueden usar su script y no olviden llamar el script keypad_input antes de poner efectos y condiciones ;)
Axel
Axel
PJ Recurrente
PJ Recurrente

Masculino
Rmakercom
RPG Maker : Ace
Mensajes : 111
Monedas : 274
Reputación : 17
Localización : En algun lugar de Azeroth

Volver arriba Ir abajo

Volver arriba


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