22-09-2012, 06:25 PM
DESCRIZIONE:
Dato che l'avevo fatto tanto tempo fa e l'hanno richiesto, lo posto qui.
A molti capita di avere le lettere giapponesi nella finestra input del nome invece delle lettere latine, così ho modificato lo script in modo tale che il gioco prenda direttamente le lettere latine invece di controllare se il programma è giapponese.
AUTORE/I:
Enterbrain per lo script, io mi sono limitato a modificarlo.
ISTRUZIONI:
Sostituire allo script Window_NameInput.
SCRIPT:
[SPOILER]
[/SPOILER]
Dato che l'avevo fatto tanto tempo fa e l'hanno richiesto, lo posto qui.
A molti capita di avere le lettere giapponesi nella finestra input del nome invece delle lettere latine, così ho modificato lo script in modo tale che il gioco prenda direttamente le lettere latine invece di controllare se il programma è giapponese.
AUTORE/I:
Enterbrain per lo script, io mi sono limitato a modificarlo.
ISTRUZIONI:
Sostituire allo script Window_NameInput.
SCRIPT:
[SPOILER]
Codice:
#==============================================================================
# ** Window_NameInput
#------------------------------------------------------------------------------
# This window is used to select text characters on the name input screen.
#==============================================================================
class Window_NameInput < Window_Selectable
#--------------------------------------------------------------------------
# * Character Tables (Latin)
#--------------------------------------------------------------------------
LATIN1 = [ 'A','B','C','D','E', 'a','b','c','d','e',
'F','G','H','I','J', 'f','g','h','i','j',
'K','L','M','N','O', 'k','l','m','n','o',
'P','Q','R','S','T', 'p','q','r','s','t',
'U','V','W','X','Y', 'u','v','w','x','y',
'Z','[',']','^','_', 'z','{','}','|','~',
'0','1','2','3','4', '!','#','$','%','&',
'5','6','7','8','9', '(',')','*','+','-',
'/','=','@','<','>', ':',';',' ','Pag.','OK']
LATIN2 = [ 'Á','É','Í','Ó','Ú', 'á','é','í','ó','ú',
'À','È','Ì','Ò','Ù', 'à','è','ì','ò','ù',
'Â','Ê','Î','Ô','Û', 'â','ê','î','ô','û',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü',
'Ā','Ē','Ī','Ō','Ū', 'ā','ē','ī','ō','ū',
'Ã','Å','Æ','Ç','Ð', 'ã','å','æ','ç','ð',
'Ñ','Õ','Ø','Š','Ŵ', 'ñ','õ','ø','š','ŵ',
'Ý','Ŷ','Ÿ','Ž','Þ', 'ý','ÿ','ŷ','ž','þ',
'IJ','Œ','ij','œ','ß', '«','»',' ','Pag.','OK']
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(edit_window)
super(edit_window.x, edit_window.y + edit_window.height + 8,
edit_window.width, fitting_height(9))
@edit_window = edit_window
@page = 0
@index = 0
refresh
update_cursor
activate
end
#--------------------------------------------------------------------------
# * Get Text Table
#--------------------------------------------------------------------------
def table
return [LATIN1, LATIN2]
end
#--------------------------------------------------------------------------
# * Get Text Character
#--------------------------------------------------------------------------
def character
@index < 88 ? table[@page][@index] : ""
end
#--------------------------------------------------------------------------
# * Determining if Page Changed and Cursor Location
#--------------------------------------------------------------------------
def is_page_change?
@index == 88
end
#--------------------------------------------------------------------------
# * Determine Cursor Location: Confirmation
#--------------------------------------------------------------------------
def is_ok?
@index == 89
end
#--------------------------------------------------------------------------
# * Get Rectangle for Displaying Item
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.x = index % 10 * 32 + index % 10 / 5 * 16
rect.y = index / 10 * line_height
rect.width = 32
rect.height = line_height
rect
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
change_color(normal_color)
90.times {|i| draw_text(item_rect(i), table[@page][i], 1) }
end
#--------------------------------------------------------------------------
# * Update Cursor
#--------------------------------------------------------------------------
def update_cursor
cursor_rect.set(item_rect(@index))
end
#--------------------------------------------------------------------------
# * Determine if Cursor is Moveable
#--------------------------------------------------------------------------
def cursor_movable?
active
end
#--------------------------------------------------------------------------
# * Move Cursor Down
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_down(wrap)
if @index < 80 or wrap
@index = (index + 10) % 90
end
end
#--------------------------------------------------------------------------
# * Move Cursor Up
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_up(wrap)
if @index >= 10 or wrap
@index = (index + 80) % 90
end
end
#--------------------------------------------------------------------------
# * Move Cursor Right
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_right(wrap)
if @index % 10 < 9
@index += 1
elsif wrap
@index -= 9
end
end
#--------------------------------------------------------------------------
# * Move Cursor Left
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_left(wrap)
if @index % 10 > 0
@index -= 1
elsif wrap
@index += 9
end
end
#--------------------------------------------------------------------------
# * Move to Next Page
#--------------------------------------------------------------------------
def cursor_pagedown
@page = (@page + 1) % table.size
refresh
end
#--------------------------------------------------------------------------
# * Move to Previous Page
#--------------------------------------------------------------------------
def cursor_pageup
@page = (@page + table.size - 1) % table.size
refresh
end
#--------------------------------------------------------------------------
# * Cursor Movement Processing
#--------------------------------------------------------------------------
def process_cursor_move
last_page = @page
super
update_cursor
Sound.play_cursor if @page != last_page
end
#--------------------------------------------------------------------------
# * Handling Processing for OK and Cancel Etc.
#--------------------------------------------------------------------------
def process_handling
return unless open? && active
process_jump if Input.trigger?(:A)
process_back if Input.repeat?(:B)
process_ok if Input.trigger?(:C)
end
#--------------------------------------------------------------------------
# * Jump to OK
#--------------------------------------------------------------------------
def process_jump
if @index != 89
@index = 89
Sound.play_cursor
end
end
#--------------------------------------------------------------------------
# * Go Back One Character
#--------------------------------------------------------------------------
def process_back
Sound.play_cancel if @edit_window.back
end
#--------------------------------------------------------------------------
# * Processing When OK Button Is Pressed
#--------------------------------------------------------------------------
def process_ok
if !character.empty?
on_name_add
elsif is_page_change?
Sound.play_ok
cursor_pagedown
elsif is_ok?
on_name_ok
end
end
#--------------------------------------------------------------------------
# * Add Text to Name
#--------------------------------------------------------------------------
def on_name_add
if @edit_window.add(character)
Sound.play_ok
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# * Decide Name
#--------------------------------------------------------------------------
def on_name_ok
if @edit_window.name.empty?
if @edit_window.restore_default
Sound.play_ok
else
Sound.play_buzzer
end
else
Sound.play_ok
call_ok_handler
end
end
end