-
Arykray
-
-
Вне сайта
-
Светлый дракон
-
- Сообщений: 595
- Спасибо получено: 52
-
-
|
Хочу представить вашему вниманию, первый мой эксперимент со скриптами. Написан довольно давно, еще во времена выхода R & W патча. Скрипт позволяет вводить в имени игрока английские и русские буквы, цифры и символы.
class Window_NameInput Window_Base
CHARACTER_TABLE =
[
A , B , C , D , E , F , G , H , I , J ,
K , L , M , N , O , P , Q , R , S , T ,
U , V , W , X , Y , Z , , , , ,
a , b , c , d , e , f , g , h , i , j ,
k , l , m , n , o , p , q , a , s , t ,
u , v , w , x , y , z , , , , ,
, , , , , , , , , ,
, , , , , , , , , ,
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ,
@ , $ , ~ , % , ^ , & , № , , , ,
А , Б , В , Г , Д , Е , Ё , Ж , З , И ,
Й , К , Л , М , Н , О , П , Р , С , Т ,
У , Ф , Х , Ц , Ч , Ш , Щ , Ъ , Ы , Ь ,
Э , Ю , Я , , , , , , , ,
а , б , в , г , д , е , ё , ж , з , и ,
й , к , л , м , н , о , п , р , с , т ,
у , ф , х , ц , ч , ш , щ , ъ , ы , ь ,
э , ю , я , , , , , , , ,
. , , , : , ; , ! , ? , * , , # , ` ,
+ , - , * , = , / , ( , ) , [ , ] , _ ,
]
#--------------------------------------------------
def initialize
super(0, 128, 640, 352)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = Arial
self.contents.font.size = 24
@index = 0
refresh
update_cursor_rect
end
#--------------------------------------------------
def character
return CHARACTER_TABLE[@index]
end
#--------------------------------------------------
def refresh
self.contents.clear
for i in 0..199
x = 4 + i / 10 / 10 * 316 + i % 10 * 28
y = i / 10 % 10 * 28
self.contents.draw_text(x, y, 28, 28, CHARACTER_TABLE[i], 1)
end
self.contents.draw_text(528, 10 * 29, 72, 32, Принять , 1)
end
#--------------------------------------------------
def update_cursor_rect
if @index = 200
self.cursor_rect.set(520, 10 * 29, 88, 32)
else
x = 4 + @index / 10 / 10 * 316 + @index % 10 * 28
y = @index / 10 % 10 * 28
self.cursor_rect.set(x, y, 28, 28)
end
end
#--------------------------------------------------
def update
super
if @index = 200
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@index -= 200
end
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@index -= 200 - 90
end
else
if Input.repeat?(Input::RIGHT)
if Input.trigger?(Input::RIGHT) or
@index / 100 1 or @index % 10 9
$game_system.se_play($data_system.cursor_se)
if @index % 10 9
@index += 1
else
@index += 100 -9
end
if @index = 200
@index -= 200
end
end
end
if Input.repeat?(Input::LEFT)
if Input.trigger?(Input::LEFT) or
@index / 100 0 or @index % 10 0
$game_system.se_play($data_system.cursor_se)
if @index % 10 0
@index -= 1
else
@index -= 100 - 9
end
if @index 0
@index += 200
end
end
end
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
if @index % 100 90
@index += 10
else
@index += 200 - 90
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @index % 100 = 10
$game_system.se_play($data_system.cursor_se)
if @index % 100 = 10
@index -= 10
else
@index += 200
end
end
end
if Input.repeat?(Input::L) or Input.repeat?(Input::R)
$game_system.se_play($data_system.cursor_se)
if @index / 100 2
@index +=200
else
@index -= 200
end
end
end
update_cursor_rect
end
end
В данный момент скрипт практически полностью переделывается, кирилица и латиница больше не будут отображатся в одном окне, а будут выбираться в дополнительном меню.
|