Últimos temas
» [Ace]Movimiento Libre
por brrt Ayer a las 3:57 pm

» Virtual Kingom (Old Version)
por NinjaLOL Ayer a las 3:22 am

» Concurso de relatos - Septiembre/Octubre 2018 [Inscripción]
por raffael_0 Ayer a las 3:18 am

» Laminación [VXACE] [PROYECTO EN CURSO]
por Pocari Vie Oct 12, 2018 12:08 pm

» QUITAR VENTANA DEL MENU (VX ACE)
por THESHINYMISTERXD Sáb Oct 06, 2018 7:46 pm

» Condición para saber si el jugador está caminando
por Sonik Sáb Oct 06, 2018 5:03 pm

» ¿Tileset de un futbolín?
por MCarlos15 Jue Oct 04, 2018 9:07 pm

» RPG Maker VX Ace en MAC
por Er1ck_92 Mar Oct 02, 2018 8:42 am

» Distrito 0 [VXACE]
por BREAK93 Mar Oct 02, 2018 6:08 am

» Necesito taileset modernos pero que no tengan estilo anime por favor
por Doble D Mar Oct 02, 2018 12:36 am

» Fantasy World XP (+ de 200 para o grupo)
por DecinBR Sáb Sep 29, 2018 6:28 pm

» Problemas con un archivo
por AetherIssei Dom Sep 23, 2018 4:08 am


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 ;)
avatar
Axel
PJ Recurrente
PJ Recurrente

Masculino
Rmakercom
RPG Maker : Ace
Mensajes : 109
Monedas : 274
Reputación : 14
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.