Polskie Znaki przy Wprowadzaniu Imienia Bohatera [VX]

 

 

Autor: Ayene [ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. ]

Kompatybilność: rmvx icon RPG Maker VX

Krótki opis:

Skrypt dodaje polską tablicę znaków podczas wprowadzania imienia bohatera.

Skrypt:

# ==============================================================================
#                ~ Polskie znaki przy wprowadzaniu imienia ~
#                       Data publikacji: 27.07.2009
#                          Autor: TagTeam
#                       Poprawki: Ayene [ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. ]
#          Zapraszamy na stronę Ultima Forum - http://www.ultimateam.pl
# ==============================================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# ==============================================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Skrypt dodaje polską tablicę znaków podczas wprowadzania imienia bohatera.

# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
class Window_NameInput < Window_Base
  #--------------------------------------------------------------------------
  # * Tablica znaków
  #--------------------------------------------------------------------------
# ---------------------------- POCZĄTEK EDYCJI ---------------------------------   
  POLISH = [ 'A','Ą','B','C','Ć',  'a','ą','b','c','ć',
             'D','E','Ę','F','G',  'd','e','ę','f','g',
             'H','I','J','K','L',  'h','i','j','k','l',
             'Ł','M','N','Ń','O',  'ł','m','n','ń','o',
             'Ó','P','Q','R','S',  'ó','p','q','r','s',
             'Ś','T','U','V','W',  'ś','t','u','v','w',
             'X','Y','Z','Ź','Ż',  'x','y','z','ź','ż',
             ' ',' ',' ',' ',' ',  ' ',' ',' ',' ',' ',
             '0','1','2','3','4',  ' ',' ',' ',' ',' ',
             '5','6','7','8','9',  ' ',' ',' ',' ','OK']
# ----------------------------- KONIEC EDYCJI ----------------------------------
  TABLE = [POLISH]
 
 
# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
  #--------------------------------------------------------------------------
  # * Rozpoczęcie
  #--------------------------------------------------------------------------
  def initialize(mode = 0)
    super(88, 138, 368, 268)  # wymiary okna z tablicą znaków
    @mode = mode
    @index = 0
    refresh
    update_cursor
  end
  #--------------------------------------------------------------------------
  # * Pobranie znaków z tablicy
  #--------------------------------------------------------------------------
  def character
    if @index < 99
      return TABLE[@mode][@index]
    else
      return ""
    end
  end
  #--------------------------------------------------------------------------
  # * Określenie położenia kursora: Potwierdzenie [OK]
  #--------------------------------------------------------------------------
  def is_decision
    return (@index == 99)
  end
  #--------------------------------------------------------------------------
  # * Odświeżanie
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0..99
      rect = item_rect(i)
      rect.x += 2
      rect.width -= 4
      self.contents.draw_text(rect, TABLE[@mode][i], 1)
    end   
  end
  #--------------------------------------------------------------------------
  # * Przesunięcie kursora w dół
  #--------------------------------------------------------------------------
  def cursor_down(wrap)
    if @index < 90
      @index += 10
    elsif wrap
      @index -= 90
    end
  end
  #--------------------------------------------------------------------------
  # * Przesunięcie kursora w górę
  #--------------------------------------------------------------------------
  def cursor_up(wrap)
    if @index >= 10
      @index -= 10
    elsif wrap
      @index += 90
    end
  end
  #--------------------------------------------------------------------------
  # * Przesunięcie kursora na [OK] - Przycisk A (domyślnie Shift)
  #--------------------------------------------------------------------------
  def cursor_to_decision
    @index = 99
  end
end

class Window_NameEdit < Window_Base
  #--------------------------------------------------------------------------
  # * Rozpoczęcie
  #     actor    : bohater
  #     max_char : maksymalna liczba znaków
  #--------------------------------------------------------------------------
  def initialize(actor, max_char)
    super(88, 10, 368, 128)  # wymiary okna z imieniem bohatera
    @actor = actor
    @name = actor.name
    @max_char = max_char
    name_array = @name.split(//)[0...@max_char]   
    @name = ""
    for i in 0...name_array.size
      @name += name_array[i]
    end
    @default_name = @name
    @index = name_array.size
    self.active = false
    refresh
    update_cursor
  end
end
# --------------------------- KONIEC SKRYPTU -----------------------------------

Dodatkowe informacje:

1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.