Últimos temas
» Archivos de musica
por Narsil40 Hoy a las 6:01 pm

» Pedido Faces ambientadas en la antigua Roma
por Muzgar Ayer a las 8:30 pm

» Me presento dejando mi oferta
por CarLoz1988 Ayer a las 3:28 pm

» ¡Eventos y concursos anuales del foro! [Febrero 2019]
por Alojzy Ayer a las 5:39 am

» Laminación [VXACE]
por Pocari Mar Feb 19, 2019 11:21 pm

» [MV] Los Cristales del Mal
por Ruben_modder Mar Feb 19, 2019 6:24 pm

» Tutorial MV: Convertiir Proyecto en APK para Android
por Ruben_modder Mar Feb 19, 2019 12:05 pm

» [Ayuda] Movimiento libre y con mouse RPG Maker Ace Point n' click
por Chaskarron Lun Feb 18, 2019 11:24 pm

» Eventos Comunes colocar imágenes de items
por Res83 Lun Feb 18, 2019 9:50 pm

» [Ayuda] ¿Se puede hacer un zoom invertido del mapa? RPGVA
por username Lun Feb 18, 2019 8:10 pm

» THE LEGEND OF THE CROWNS: Looking Across the Time
por Fiquei Lun Feb 18, 2019 9:07 am

» Muestrario de Screens
por kyonides Dom Feb 17, 2019 7:50 pm


Script Keypad Input

Ir abajo

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:



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 : 109
Monedas : 275
Reputación : 15
Localización : En algun lugar de Azeroth

Volver arriba Ir abajo

Volver arriba

- Temas similares

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